Board logo

标题: 关于Mc9sNe64的flash读写? [打印本页]

作者: netcalf    时间: 2005-8-19 09:52     标题: 关于Mc9sNe64的flash读写?

按照手册设置了FCLKDIV寄存器,往相应地址写入想要写的数据,然后写FCMD寄存器,以及FSTAT对应位,程序执行过程中提示说“trigger A occured”,然后程序就停住了。在点“go”出现提示“illegal bp”又停住。。。但是看flash的对应地址,我要写的数据已经写进去了。

另外,cw软件所提供的命令文件“unsecued”是不是有问题啊,我有一个板子,执行了这个命令文件之后就再也不能用了,不能下载程序到flash中去了!提示信息说“can't find the BDM speed”.
感谢各位达人指点!
作者: seuafu2005    时间: 2005-8-19 10:02

程序要放在RAM中运行。有没有查看一下FSTAT的ACCERR有没有置位?
作者: netcalf    时间: 2005-8-19 10:05

ACCESS已经置位。
作者: seuafu2005    时间: 2005-8-19 11:28

那表示操作过程有错误。仔细看看有什么错误
作者: netcalf    时间: 2005-8-19 11:57

这里时代码:
void testFlash(UINT8 page,UINT16 addr)
{
FCLKDIV=0x51;
FCNFG=0x0;
FPROT=0xff;
FSTAT=0x30;
while(!(FSTAT&0x80));
*(UINT16 *)addr=0x1234;
FCMD=0x20;
FSTAT=0x80;
}
麻烦 各位了。
作者: seuafu2005    时间: 2005-8-19 14:38

看起来没什么问题。代码放RAM中跑的?不用flash CCIF中断的话,有没有把其他中断关掉?COP有没有关掉?
另外,可以试试不在BDM仿真环境下跑,直接把代码放到芯片里面,拔掉BDM跑,仿真可能会出错。
作者: netcalf    时间: 2005-8-19 15:07

如何放到RAM中跑啊?默认的不是这样么?见笑了。
作者: strongchen    时间: 2005-8-19 16:42

程序可以复制到RAM中,然后跳转到RAM中运行,或者调用RAM中的程序。
作者: netcalf    时间: 2005-8-20 12:12

奇怪的是,单步执行是不会中断的,只要单步执行完FSTAT=0x30;程序就可以正常运行了,而且,flash已经写成功了。
作者: strongchen    时间: 2005-8-22 10:06

很可能是COP的原因。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0