当前位置: 代码迷 >> WinCE >> 读flash的id号,该怎么解决
  详细解决方案

读flash的id号,该怎么解决

热度:182   发布时间:2016-04-28 13:37:55.0
读flash的id号
目标板式270的,原来用的板子上的flash是intel的E28F128J3,现在的flash是AMD的S29GL128N,用了两片,单片16M.进行如下id号的执行语句
typedef unsigned short U16;
typedef unsigned int U32;

#include "norflash.h"

#define out_l(v, a) (*(volatile U16 *)(a) = (v))
#define in_l(a) (*(volatile U16 *)(a))

#define ROM_BASE (U16) 0x0
#define ROM_BASE1 (U16) 0x0555
#define ROM_BASE2 (U16) 0x02aa

int ChkNorFlash(void)
{
U16 id;

out_l(0xaa, ROM_BASE1);
out_l(0x55, ROM_BASE2);
out_l(0x90, ROM_BASE1);
id = in_l(ROM_BASE);
printf("NOR Flash Man. ID is 0x%x\n", id);
}
不知道怎么弄得输出的是基址上的二进制镜像的代码,不是flash的id号
原来开发板上的intel的代码为
int ChkNorFlash(void)
{
U16 id;
out_l(0x90, ROM_BASE1);
id = in_l(ROM_BASE);
printf("NOR Flash Man. ID is 0x%x\n", id);
}
是因为之前的寄存器配置的问题吗?





------解决方案--------------------
我感觉 第一是看看你的flash是否写保护 第二是看你的程序是否完全符合flash的读写时序
  相关解决方案