这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » arm9 操作 flash 问题

共2条 1/1 1 跳转至

arm9 操作 flash 问题

菜鸟
2007-03-07 18:47:24     打赏

在uboot1.1中, at91rm9200 操作flash 的 flash.c :
#define MEM_FLASH_ADDR1 (*(volatile u16 *)(CFG_FLASH_BASE + (0x00005555<<1)))
#define MEM_FLASH_ADDR2 (*(volatile u16 *)(CFG_FLASH_BASE + (0x00002AAA<<1)))

#define IDENT_FLASH_ADDR1 (*(volatile u16 *)(CFG_FLASH_BASE + (0x0000555<<1)))
#define IDENT_FLASH_ADDR2 (*(volatile u16 *)(CFG_FLASH_BASE + (0x0000AAA<<1)))

IDENT_FLASH_ADDR 检查 flash ID ,MEM_FLASH_ADDR erase/write flash.
am29lv160db 的 datasheet 上的命令: 0x 555 /0x2aa

我是问题:

1) 什么时候addr 要<<1,为什么在一些烧写的例子是不用的?
(2) 什么时候 要用MEM_FLASH_ADDR 为什么它与datasheet 上的不一样?




关键词: 操作     flash     问题     FLASH    

菜鸟
2007-03-08 16:41:00     打赏
2楼

能说一下清楚吧

对于 <<1,我还能理解一下,可能flash 是16bits的原因,但我用JTAG erase/write flash 时,是不用<<1,但这样也能正常操作的.

所以不懂的地方在这里.


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]