标题:
关于XEP100中flash驱动的读写和擦除问题...
[打印本页]
作者:
plabgh
时间:
2011-6-14 21:55
标题:
关于XEP100中flash驱动的读写和擦除问题...
Flash.rar
(934 Bytes)
我的代码,麻烦大家帮忙看看,谢谢...
下载次数: 533
2011-6-14 21:55
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个月了,一直没通过,恳请大家帮帮小弟,谢谢...(附件里面是我写的代码,麻烦各位大牛帮小弟看看)
附件: [我的代码,麻烦大家帮忙看看,谢谢...]
Flash.rar
(2011-6-14 21:55, 934 Bytes) / 下载次数 533
http://bbs.eccn.com/attachment.php?aid=11582&k=807edd39ec5fce33d203e357eec7f495&t=1732358224&sid=j1J1Hq
作者:
plabgh
时间:
2011-6-15 08:46
麻烦大牛...小弟很想知道程序错误的原因...
作者:
plabgh
时间:
2011-6-16 10:05
另外的问题:如果我在全局地址0x700000开始写入4word的数据,比如0x1122,0x3344,0x5566,0x7788.
然后执行下面的语句:
unsigned char i;
i=*((unsigned char*)0x700000);
为什么读不出来地址为0x700000的值???我已经把数据写进去了,但是就是读不出来...我试过延时一两秒钟以后在读数据,结果还是读不出来...麻烦大家指教指教,谢谢...
作者:
plabgh
时间:
2011-6-19 09:37
还有一个问题:如何取消当前对flash的操作???我尝试过三种方式.
1)写入:FSTAT = 0x80; (测试过,未能取消当前正在对flash所执行的操作)
2)写入:FSTAT = 0x30; (测试过,也未能取消当前正在对flash所执行的操作)
3)写入:FSTAT = 0x80|0x30; (测试过,还是未能取消当前正在对flash所执行的操作)
恳请各位指教,该如何取消对flash的操作....
作者:
plabgh
时间:
2011-6-19 09:41
关于flash写和查出的问题已经解决:
不需要分页,命令里面的地址都是全局地址.而debug环境里面地址栏默认的是逻辑地址,点击右键将逻辑地址改成全局地址就可以观察数据了....
作者:
taotao106
时间:
2011-6-20 09:56
请教,我使用的MC68HC912B32CFUE8芯片,
下载程序是提示没有编程电压(flash),当时我测了VFP引脚有5v,这是什么回事,先谢了?
作者:
plabgh
时间:
2011-6-28 10:32
对于读数据的问题...已经解决...两种方法:
1.给定全局地址读取数据...2.给定逻辑地址读取数据...
下面仅仅介绍第一种...
unsigned char i;
i=*((unsigned char *__far)0x700000;
这样就可以读出全局地址为0x700000的值了...因为far指针的长度是32位,可得到的寻址范围是1M...而普通指针的寻址范围是64K...
作者:
widom
时间:
2011-8-30 14:08
你要是还没解决的话,加我QQ吧,XEP100的FLASH我算是研究透了,还有建议你静下心去看芯片手册,这是王道!714296759
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0