对Nand flash读操作的分析
前几天大致分析了u-boot针对smdk2410的源码,了解了启动的流程,但是对板上许多硬件的驱动过程还不太清楚。smdk2410源码中有针对Nor Flash的初始化和读取,但源码中没有对Nand Flash的操作,虽然针对其他型号的板子应该有Nand的源码,但方便起见,我查阅了vivi的源码,它支持从Nand Flash启动,自然有我需要的东西。下面我就自己的分析和总结列出来,中间当然也从google上得到不少前人留下的宝贵资料:)。
我先摘录一段对Nor和Nand flash区别的几条总结:
NOR flash采用位读写,因为它具有sram的接口,有足够的引脚来寻址,可以很容易的存取其内部的每一个字节。
NAND flash使用复杂的I/O口来串行地存取数据。8个引脚用来传送控制、地址和数据信息(复用)。NAND的读和写单位为512Byte的页,擦写单位为32页的块。
● NOR的读速度比NAND稍快一些。
● NAND的写入速度比NOR快很多。
● NAND的4ms擦除速度远比NOR的5s快。
● 大多数写入操作需要先进行擦除操作。
● NAND的擦除单元更小,相应的擦除电路更少。
在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
再来看看Nand flash自身的特点(部分摘自August0703的文章):
Nand Flash的数据是以bit的方式保存在memory cell中,一般来说,一个cell 中只能存储一个bit。这些cell 以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的位宽。
多个line(多个位宽大小的数据)会再组成Page。我使用的Nand flash是三星的K9F1208U0M,从datesheet上得知,此flash每页528Bytes(512byte的Main Area + 16byte的Spare Area),每32个page形成一个Block(32*528B)。具体一片flash上有多少个Block视需要所定。我所使用的k9f1208U0M具有4096个block,故总容量为4096*(32*528B)=66MB,但是其中的2MB(Spaer Area)是用来保存ECC校验码等额外数据的,故实际中可使用的为64MB。
Nand flash以页(512Byte)为单位读写
相关文档:
VB显示透明FLASH效果
演示效果:
代码如下:
公共声明区域
Option Explicit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetW ......
用SWFObject,将swf文件嵌入网页后,在IE浏览器中首次浏览正常,刷新后,stageWidth就为0了,swf中基于stageWidth定位的元素,就会错乱。
转自(ljhzzyx 2009-09-24 14:44:20)
首先区分一下stage的stageWidth和width属性。stage.stageWidth是flash player的宽度,stage.width是指stage里content的宽度,如果这个舞台(sta ......
怕哪天再用到,省的再重新写:
#!/bin/sh
save_path=$1
log_path="/usr/local/nginx/logs/null.log"
_from=`head $log_path -n1 |awk '{print $4}'|awk -F"[" '{print $2}'|grep -oE "[A-Za-z0-9:]+"`
_end=`tail $log_path -n1 |awk '{print $4}'|awk -F"[" '{print $2}'|grep -oE "[A-Za-z0-9:]+"`
from=`echo $_ ......
原理;用flash把书签相关信息写入剪贴板,用VC的程序读剪切板内容,写入硬盘。当flash读书签时,直接读取txt文件。写入或删除操作,用vc的程序。
=======================flash端:
按键设计: add | bookmark | del
限制:每本txt电子书只有一个书签。
src:
button add:
on(release){
//add
System.setClipboard ......
本来很早就打算开买一个域名、空间架设自己的博客,但是在选来选去中犹豫不决了
1
个月,就在昨天我生日的那天,我顿悟了,干嘛一定要用自己的域名,没有什么名气,没有什么特点,只是记录一下自己的生活,主要的目的还是以下:
1
,期限为
1
年,为的是看看
1
年的坚持写作可以给自己带来什么好处;
2
......