社区
驱动开发/核心开发
帖子详情
求助:关于CFI以及flash driver
ionlic
2005-08-14 03:20:25
最近老板让我写flash driver催得急,有些东西我不懂,求助这里的诸位高人。
进入Query mode后,是不是只能访问
addresses(x16)
10h~50h 这段的地址啊。是不是就是说只能访问cfi query data stucture?
cfi的主要作用是什么啊?
我昨天拿到am29lv256m的datasheet,正在看。我怎么没有看到,如何读写flash呢?
谢谢。
...全文
376
3
打赏
收藏
求助:关于CFI以及flash driver
最近老板让我写flash driver催得急,有些东西我不懂,求助这里的诸位高人。 进入Query mode后,是不是只能访问 addresses(x16) 10h~50h 这段的地址啊。是不是就是说只能访问cfi query data stucture? cfi的主要作用是什么啊? 我昨天拿到am29lv256m的datasheet,正在看。我怎么没有看到,如何读写flash呢? 谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ionlic
2005-09-07
打赏
举报
回复
呵呵,谢谢楼上,我那个时候刚接触,什么都不懂,现在懂了一些皮毛。
CFI操作主要是查询flash芯片的相关信息。
在查询前,用户需要在指定地址写入QRY,其实就是查询(读)。
对于NOR型的flash芯片(NAND还没看过),读就是直接从地址读。
而写需要执行擦除操作(flash只是对指定位置写0,擦除是写1)。
至于对flash的操作,不同的厂商都有一套自己的command或者command sequence。
flash属于状态敏感型芯片,对指定的内存地址写入指定的值(或者值序列)就会使flash芯片处于一个指定的状态。
土豆
2005-08-31
打赏
举报
回复
你要干吗?
读flash简单,只需要像访问内存那样就可以了。
但是写比较麻烦些。你需要按照CFI的操作序列去实现。CFI其实是Intel推出的标准,amd的flash操作命令不一样,但是意思差不多。
比如要在偏移为addr的地方写入一个数value,按下面的序列
1)在偏移0x555的地方写入0xaa
2)在偏移0x2aa的地方写入0x55
3)在偏移0x555的地方写入0xa0
4)在偏移addr的地方写入value
5)等待上述操作执行完成。
注意:写只能对被擦除了的区域,如果有数据的,需要先作擦除。
1)在偏移0x555的地方写入0xaa
2)在偏移0x2aa的地方写入0x55
3)在偏移0x555的地方写入0x80
4)在偏移0x555的地方写入0xaa
5)在偏移0x2aa的地方写入0x55
6)在要删除的section的开始地址offset写入0x30
7)等待上述操作执行完成。
其实flash的driver 有很多要做:
首先,你要检测flash的类型,也就是做probe;另外你也需要实现reset的功能,因为flash内部其实也有一段程序,在出现故障的时候需要做reset;上面实现的写操作是字节写的,当然也能工作,不过flash一般都有buffer write功能,可以一次性将一块数据写上去,这样效率高写。
ionlic
2005-08-14
打赏
举报
回复
CFI我有点理解了。
为了使程序可重用。如果支持了CFI,就可以应用程序判断是什么类型的flash,然后根据不同的芯片类型作相应的操作。我这样理解对么?
是不是一般flash中都有state machine?其实,写操作主要是通过设定state machine的状态来进行些操作的对么?
我刚刚接触,还请各位大侠再给补充补充。
解决J-
FLASH
弹出Could not find
CFI
compliant
flash
device错误
使用J-
FLASH
烧录固件的时候,软件弹出Could not find
CFI
compliant
flash
device错误,如下图 可以Connect,但是擦除、烧录固件都不好使 LOG窗口打印如下图 发现在OPTIONS-->PROJECT SETTING选项中的MCU和
FLASH
选择框内容不对,修改与烧录目标一致即可解决Could not find
CFI
compliant
flash
device的问题。 最方便就是重新打开J-
FLASH
软件,初始化的时候正确选择芯片型号
如何解决jlink出现could not find
cfi
compliant
flash
device
如何解决j-link出现could not find
cfi
compliant
flash
device。
Error:No
CFI
table found at address 0x00000000
软件版本:quartues II9.0 和nios II9.0;系统版本: 今天我将程序下载到板子上的
Flash
时,出现了以下的问题:cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486(来源于MSDN-我告诉你) #!/bin/sh # # This file was automatically generated by the Nios I
Nios编程:No
CFI
table found问题的解决
写入
flash
程序的时候,系统提示:[SOPC Builder]$ nios2-
flash
-programmer --device=1 --instance=0 --base=0x00000000
cfi
_
flash
_Share.
flash
Using cable "ByteBlasterII [LPT1]", device 1, instance 0x00Resetting and pausi
如何解决j-link出现could not find
cfi
compliant
flash
device
如何解决j-link出现could not find
cfi
compliant
flash
device
驱动开发/核心开发
21,618
社区成员
21,708
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章