【HELP!】读取flash ID 的代码在ADS1.2下通过但移植到usrAppInit.c里面却不能向FLASH写值进去?

tenglin606   2007-12-10 11:00 楼主

  1. #define FlashAddrMap(FlashAddr) (FlashAddr << 1)
  2. UINT16 getMID(void)
  3. {
  4.         UINT16 manufacturerID;
  5.         *((volatile UINT16*) FlashAddrMap(0x555)) = 0xaa;
  6.         *((volatile UINT16*) FlashAddrMap(0x2aa)) = 0x55;
  7.         *((volatile UINT16*) FlashAddrMap(0x555)) = 0x90;
  8.         manufacturerID = *((volatile UINT16*) FlashAddrMap(0x00));
  9.         return manufacturerID;
  10. }

读取flash ID 的代码在ADS1.2下通过但移植到usrAppInit.c里面却只能执行到第一条写FLASH命令的字的那行就停了。(通过printf  串口输出)
是不是由于其他进程造成干扰?要不要对其进行临界资源保护?我加了intLock()和intUnlock()后还是一样。

回复评论 (6)

没明白,你说的什么意思

一直到什么里?
点赞  2007-12-10 11:20
移植到vxworks 的用户接口 usrAppInit.c 文件。用户应用程序入口。
点赞  2007-12-10 11:34
只要你按照flash读ID的时序来操作,应该是一样,但你要确保所操作的Flash 的CS要已经初始化后,再执行上述操作!
点赞  2007-12-11 13:06
有没有错误提示捏~~~~另外~~FLASH的写保护打开了没
点赞  2007-12-11 13:37
这段程序在ADS下裸机编程调试通过了的。但放到usrAppInit.c 里就不行。
移植到BSP的tffs  作为flash MTD驱动就可以正确的读出ID号。
点赞  2007-12-17 09:04
你为什么要向0x555 << 1这个地址写入数据,这个地址是不是分配给flash使用,一般这个地址都用作SDRAM使用
flash要有偏移地址的!
点赞  2008-1-3 21:55
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复