发送命令也不闪存

时间:2014-11-17 23:46:06

标签: c linux embedded

在我的嵌入式目标中,NOR闪存在一些具有状态,设备信息,cfi信息等的命令后覆盖地址映射。

要阅读我使用的正常地址:

map= (int *)(mmap(0,SECTOR_SIZE*NUM_SECTORS,PROT_READ|PROT_WRITE,MAP_SHARED,_fdmem,NOR_FLASH_PHYS));
printf("Location 0x0 , data %x\n",map[0]);

要切换到叠加模式,我必须预先录制somw写道:

ID (Autoselect) Entry  555 AA 2AA 55 555 90

(芯片是S29GL128S) 但是:

map[0x555]=0xAA;
map[0x2AA]=0x55;
map[0x555]=0x90;

不起作用。仍然读取正常内存而不是芯片ID。

用lseek读取/ dev / mem并读取返回0..so猜这样写的方式也不会起作用。

在这方面有点新手,并且欢迎所有帮助。

感谢

1 个答案:

答案 0 :(得分:0)

为什么要使用强制转换为(int *)?变量map的类型是什么,int *? sizeof(int)== 4,因此map [0x555]表示在内存中映射[0x555 * 4字节]。使用强制转换为(unsigned char *)或(uint8_t)。

可能是错误就在那里。