mtd flash函数说明
在这里主要描述
v3
的
mtd
,在
linux
的
MTD
子系统当中:
Linux MTD
设备的
NOR
Flash
芯片驱动遵循
CFI
接口标准,其驱动程序位于
drivers/mtd/chips
子目录下。
NAND
型
Flash
的驱动程序则位于
/drivers/mtd/nand
子目录下Map
中的
bankwidth
是总线位宽,
device_type
是芯片位宽;读写,要按照总线位宽读写1
:读写,要按照总线位宽读写,注意不是
FLASH
芯片位宽(例如背靠背)。2
:寻址,程序要访问的地址和
FLASH
芯片地址引脚得到的值是不一样的,例如
16
位的
FLASH
芯片,对于
CPU
,
0x00
和
0x01
表示2
个不同的字节,但是到了
FLASH
引脚得到的都是
0
,也就是都指向
FLASH
的第一个
WORD
。可以认为地址总线的
bit0
悬空,或者认为转换总线
, bit0
上实际输出的是
bit1
。这个解释了要点
1
。3
:芯片手册提到偏移量都是基于
WORD
的,而
WORD
的位宽取决于芯片的位宽,因此在下命令的时候,实际偏移
=
手册偏移*buswidth/8 。4
:芯片手册提到的变量长度(典型如
CFI
信息)例如
2
,指的是,变量是个
16bit
数,但是读的时候,要读
2
个
WORD
,然后把每个WORD
的低
8
位拼成
1
个
16bit
数。读
WORD
再拼凑确实挺麻烦,尤其是读取大结构的时候,不过参照
cfi_util.c
的
cfi_read_pri
函数的做法就简单了。5
:背靠背,也就是比方说
2
块
16
位的芯片一起接在
32
位的总线上。带来的就是寻址的问题,很显然,首先要按
32
位读写;其次就是下命令的地址,实际偏移
=
手册偏移
*interleave*device_type/8
,device_type=buswidth/interleave
,而
buswidth
这个时候是
32(总线位宽
)
。另外就是背靠背的时候,命令和返回的状态码是“双份的”,例如
2
块
16
位背靠背,读命令是
0x00ff00ff
。
系统在启动的时候会在main.c
中的
init—
》
do_basic_setup-
》
do_initcalls();这里他会先执行
cfi_probe_init
函数,在
chip_drvs_list
链表中增加了
cfi
接口标准的硬件驱动:static struct mtd_chip_driver cfi_chipdrv =
{
probe:
cfi_probe,
name:
"cfi_probe",
module:
THIS_MODULE
};同样也执行
cfi_amdstd
相关文档:
可以“按ESC 退出全屏模式”
FLASH 全屏有二类四种:
1、不用浏览器直接用FLASH播放器播放的类型:
A、不显示FLASH播放器菜单栏的全屏(类似屏保效果),在第一帧处的Actions用FS Command 命令,在For standalone player 选项中选择fullscreen 为true 即可。
&nbs ......
围剿 Flash 的不仅有 HTML 5,还有 JavaScript,著名的 JavaScript 框架 jQuery 在运动特效方面已经越来越流畅,有时候你需要点一下右键来确认它不是 Flash。本文介绍了10个非常出色的 jQuery 运动特效,这些效果可以更有效地展示你的内容。
1. 流感导航菜单
下面的导航菜单,当鼠标在上面移动的时候,会很流畅地垂 ......
Flash与VC的通信方法 串口 用VC和Flash控件实现无锯齿矢量图形绘制,可以绘制实时曲线
2009-03-05 08:39
我们知道,Flash可以做出很炫很酷的界面,且都是矢量图形,所以我们这里可以通过Active X控件shockwave Flash object将Flash嵌入到VC中,用控件与VC接口对Flash进行操作,如实时读取数据并作图类似的程序 ......