首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于XEP100中flash驱动的读写和擦除问题...

关于XEP100中flash驱动的读写和擦除问题...

Flash.rar (934 Bytes) 1.写flash时,需要分页,设置PPAGE吗?如果要,怎样由逻辑地址转换成全局地址?  比如:1)当PPAGE=0xC0时,对应的全局地址就是:0x70_0000--0x70_3FFFF;
         2)当PPAGE=0xFF时,对应的全局地址就是:0x7F_C000--0x7F_FFFF;
  那么,在程序里面该怎么进行由逻辑地址到全局地址之间的转换.(求转换的代码)

2.写flash时,是在程序里面写入4个word并发送后再对地址加8?还是每入写一个word就对地址加2,写完4个word再发送?

3.擦除flash时,需要需要分页,设置PPAGE吗?擦除程序里面的全局地址是直接给,还是通过PPAGE分页以后由逻辑地址转换而来?

4.实验板上的晶振是4MHZ的,初始化的时候对寄存器FCLKDIV应该赋值0x03还是0x04?

程序已经调试快3个月了,一直没通过,恳请大家帮帮小弟,谢谢...(附件里面是我写的代码,麻烦各位大牛帮小弟看看)
麻烦大牛...小弟很想知道程序错误的原因...
另外的问题:如果我在全局地址0x700000开始写入4word的数据,比如0x1122,0x3344,0x5566,0x7788.
              然后执行下面的语句:
                            unsigned char  i;
                                       i=*((unsigned char*)0x700000);
              为什么读不出来地址为0x700000的值???我已经把数据写进去了,但是就是读不出来...我试过延时一两秒钟以后在读数据,结果还是读不出来...麻烦大家指教指教,谢谢...
还有一个问题:如何取消当前对flash的操作???我尝试过三种方式.
                 1)写入:FSTAT = 0x80;  (测试过,未能取消当前正在对flash所执行的操作)
                 2)写入:FSTAT = 0x30;  (测试过,也未能取消当前正在对flash所执行的操作)
                 3)写入:FSTAT = 0x80|0x30; (测试过,还是未能取消当前正在对flash所执行的操作)

恳请各位指教,该如何取消对flash的操作....
关于flash写和查出的问题已经解决:
不需要分页,命令里面的地址都是全局地址.而debug环境里面地址栏默认的是逻辑地址,点击右键将逻辑地址改成全局地址就可以观察数据了....
请教,我使用的MC68HC912B32CFUE8芯片,
下载程序是提示没有编程电压(flash),当时我测了VFP引脚有5v,这是什么回事,先谢了?
对于读数据的问题...已经解决...两种方法:
1.给定全局地址读取数据...2.给定逻辑地址读取数据...
下面仅仅介绍第一种...
                           unsigned char  i;
                           i=*((unsigned char *__far)0x700000;
这样就可以读出全局地址为0x700000的值了...因为far指针的长度是32位,可得到的寻址范围是1M...而普通指针的寻址范围是64K...
你要是还没解决的话,加我QQ吧,XEP100的FLASH我算是研究透了,还有建议你静下心去看芯片手册,这是王道!714296759
返回列表