SST FLASH驱动问题

qwerty1231 2007-07-21 11:47:03
请各位大哥指点我一下阿,感激不尽!
我在SST_39VF6401B进行获取CFI时,无法读取到正确的数据!这是我的获取代码:

UI8 Query[256];
volatile UI16 *Top;
Top = (volatile UI16 *)DRV_FLASH_TOP;
关中断;
Top[(0x555<<1)] = 0x00aa;
Top[(0x2aa<<1)] = 0x0055;
Top[(0x555<<1)] = 0x0098;

for( i = 0x0010 ; i < 0x0035 ; i++ )
{ Query[i] = (UI8)Top[(i<<1)];}

请问一下为什么我无法获取到正确的CFI,请各位大哥帮帮忙,看一下,谢谢!
...全文
888 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
seedundersnow 2007-07-25
  • 打赏
  • 举报
回复
程序不能在被操作的Flash上运行。

你可以把相关的程序复制到内部的SRAM或外部的SDRAM上运行,然后才能对SST作
ID/CFI操作,以及写操作。

Spansion 可能允许在某块进行写而其它块仍可读,但SST不可以。读它的ID什么的,
或进行写,整个器件就不能进行一般的读操作了.
seedundersnow 2007-07-25
  • 打赏
  • 举报
回复
程序不能在被操作的Flash上行动运行。

你可以把相关的程序复制到内部的SRAM或外部的SDRAM上运行,然后才能对SST作
ID/CFI操作,以及写操作。

Spansion 可能允许在某块进行写而其它块仍可读,但SST不可以。读它的ID什么的,
或进行写,整个器件就不能进行一般的读操作了.
qwerty1231 2007-07-25
  • 打赏
  • 举报
回复
十分感谢,应该就是这个问题,谢谢!
还有,我怎么给你问题点数: 80
怎么给你加分谢谢!
qwerty1231 2007-07-23
  • 打赏
  • 举报
回复
急,自己再顶,望能速回!感激不尽!Thans!
qwerty1231 2007-07-22
  • 打赏
  • 举报
回复
自己顶下,望各位大哥能指点下小弟!
qwerty1231 2007-07-21
  • 打赏
  • 举报
回复
首先感谢大哥的回复,我确实左移有问题。
我现在在做FLASH的替换,将原有的Spansion的FLASH s29GL064M(R4) 换成SST的39VF6401B
请问一下,他们的管脚基本相同,硬件应该可以不做变动。
我现在把FLASH换成SST的以后都能够正确读取FLASH上的数据,但是不能读设备ID,CFI等,也无法写数据,每次程序调试到这一步就死机了。(39VF6401B的命令还是3位的)
Top[0x555] = 0x00aa;
Top[0x2aa] = 0x0055;
Top[0x555] = 0x0098;//运行这步以后就死机。
望各位大哥给点提示,帮帮我,谢谢!
seedundersnow 2007-07-21
  • 打赏
  • 举报
回复
for( i = 0x0010 ; i < 0x0035 ; i++ )
{ Query[i] = (UI8)Top[i];} /* 也不要左移 */
seedundersnow 2007-07-21
  • 打赏
  • 举报
回复
既然 Top 被定义成 16-bit, 就不要左移了吧? 而且不应是0x555和0xaaa
是否该这样?
Top[0x5555] = 0x00aa;
Top[0x2aaa] = 0x0055;
Top[0x5555] = 0x0098;

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧