fulminate
驱动小牛
驱动小牛
  • 注册日期2002-05-16
  • 最后登录2006-11-27
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:2266回复:5

怎么没有讨论Flash驱动的问题?

楼主#
更多 发布于:2005-04-04 15:56
Flash的读写和读写前的一些准备工作,不同厂家的Flash的差别等等
==========腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库==========
hz_linuxer
驱动牛犊
驱动牛犊
  • 注册日期2005-01-11
  • 最后登录2005-04-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-27 08:49
flash驱动可能是最简单的驱动了
liwaye
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2010-10-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-18 13:33
我觉得做起来比看起来要困难啊
flash的boot块以及flash里的特殊块,该怎么处理了
fulminate
驱动小牛
驱动小牛
  • 注册日期2002-05-16
  • 最后登录2006-11-27
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-05-18 21:20
是啊,最简单的没做过也不会啊
==========腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库==========
flyhuan
驱动牛犊
驱动牛犊
  • 注册日期2001-12-11
  • 最后登录2005-06-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-05-30 21:44
重点是要明白Flash的特性
读取的时候特性和RAM一样
Program和Erase的时候就不一样

基本上内部存在一个硬件的状态机, default在read state.如果你想进行写的动作, 你就需要按照datasheet往特殊的地址写入一些特殊的command cycle,就能让Flash进入erase 或者是program状态。然后就可以做erase和program的动作, 然后通过polling Flash的状态寄存器就可以判断erase和program的完成状况

对于boot快, 由于他是一个block更小的区域, 在做手机的运用中喜欢用来做一个仿真的eeprom.

/******************************/
一定要注意由于Flash的这种状态机特性, 不允许在一个flash上run code,同时对其他的区域进行erase 和 program动作
除非support multi-bank
qif2000
驱动牛犊
驱动牛犊
  • 注册日期2005-06-16
  • 最后登录2005-06-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-06-16 11:43
简单?? 没亲自做过底层的人,伸手拿来就用的人大概觉得简单吧
相对来说,NOR FLASH的驱动简单些,NAND FLASH的就复杂点,因为NAND FLASH中都存在坏块,这就需要格式化,标记坏块的位置,然后做逻辑地址和物理地址的影射表,这部分工作说起来容易做起来要稳定可靠,可不是那么简单的事~ 特别是用单片机系统来做~~
只不过现在ARM流行起来,这种可以上操作系统的找FLASH驱动有现成的,不用太费力气
他人笑我太疯癫,我笑他人看不穿~
游客

返回顶部