这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 5402,FLASH 请教5402烧写FLASH程序的问题

共2条 1/1 1 跳转至

5402,FLASH 请教5402烧写FLASH程序的问题

院士
2006-09-17 18:14:16     打赏
5402,FLASH 请教5402烧写FLASH程序的问题



关键词: FLASH     请教     烧写     程序     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 Flash-CE#=DS#+A14#                  FLASH映射到数据空间0x4000~0xffff
Flash-OE#=MSTRB#+R/W#
Flash-WE#=MSTRB#+R/W

以下是CMD文件
MEMORY
{
PAGE 0:   VPROG(RWXI):  origin = 0x1600, len = 0x500
          VECS(RXI):    origin = 0x80, len = 0x80
PAGE 1:   DATA(RWI):    origin = 0x3000, len = 0xf00
}

SECTIONS
{
.text:      {} >      VPROG PAGE 0
.cinit:       {} >      VPROG PAGE 0
.pinit        {} >      VPROG PAGE 0
.vectors      {} >      VPROG PAGE 0
.stack:       {} >      DATA PAGE 1
.bss:         {} >      DATA PAGE 1  
.const:       {} >      DATA PAGE 1
.switch:      {} >      DATA PAGE 1   
.sysmem:      {} >      DATA PAGE 1
.cio:      {} >      DATA PAGE 1
.far:         {} >      DATA PAGE 1
.data:        {} >      DATA PAGE 1
}
完成对flash擦除操作时,结果是数据空间0x4000~0xffff全部为FFFF,表明擦除已完成。
然后完成对flash的写操作。
for(i=0;i<0x35;i++)   //write boot table
     {
         WriteFlash((0x3000+i),flash_data);
     }
查数据空间0x3000~0x3035时发现数据是写进去了。但下面的程序运行时发现数据写不进数据空间0x4000~0x4035,请问为什么?FLASH映射到数据空间0x4000~0xffff,写boot table
也应该写到数据空间0x4000~0xffff,对不?请高手指导一下,谢谢哈。

for(i=0;i<0x35;i++)   //write boot table
     {
         WriteFlash((0x4000+i),flash_data);
     }
1: 个人见解既然楼主的flash_Ce用的是A14,那么地址线应该是A0--A13(还可能A15--Axx),A0---A13地址空间0---4000H A15---Axxx地址空间8000H---XXXXH,怎么能写入到4000H----8000H的空间地址呢? 因此估计读出来的也是假的.... 2: 继续问Flash-CE#=DS#+A14#    改为Flash-CE#=0时,发现还是出现下面问题:
然后完成对flash的写操作。
for(i=0;i<0x35;i++)   //write boot table
     {
         WriteFlash((0x3000+i),flash_data[i]);
     }
查数据空间0x3000~0x3035时发现数据是写进去了。但下面的程序运行时发现数据写不进数据空间0x4000~0x4035,这时Flash-CE#=0,请问为什么还写不进去?请高手指导一下,谢谢哈。

for(i=0;i<0x35;i++)   //write boot table
     {
         WriteFlash((0x4000+i),flash_data[i]);
     }
3: 个人见解A14要与flash的A14硬件连接

共2条 1/1 1 跳转至

回复

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