Board logo

标题: 请教一个flash的读写问题,谢谢!! [打印本页]

作者: tiaodekeyi    时间: 2006-12-28 09:45     标题: 请教一个flash的读写问题,谢谢!!

想请教你一个问题
我的片子是MC9Sdg128
我的flash读写程序在不带uc操作系统的,跑起来了
而加上uc操作系统,就老是跑飞了 是什么原因啊?

作者: seuafu2005    时间: 2006-12-28 10:46

操作系统中的中断会干扰程序,另外,你开的stack的size是否足够
作者: tiaodekeyi    时间: 2006-12-28 11:38

这是我写的代码,我想请问,主函数执行了CopyToRam()了后,如何跳到RAM中
执行(用的是哪条指令),我用的是codewarri编译器,另外,我的FL_WriteWord中的参数是怎么传进去的,
我在主函数中不太会做应用,希望大侠能给些应用方面的代码,谢谢
void FL_WriteWord(byte page,word addr,word data)
{
PPAGE = page;
page=page&0x0C;
page=page>>2;
FCNFG = 3-page;
while(!(FCLKDIV & 0x80)) //复位后时钟分频是否做出修改
{}
while(!(FSTAT & 0x80)) //命令缓冲区是否为空
{}
while(!(FPROT & 0x80)) //FLASH是否允许进行编程
{}
*((volatile word *)(addr))=data;
FCMD = 0x20; //置编程命令
FSTAT|=0x80;
while(!(FSTAT & 0x80))
{}
while(!(FSTAT & 0x40)) //命令是否执行完毕
{}

}

void CopyToRam(void){
unsigned char i=100;
unsigned char *Ps, *Pd;
Ps = (unsigned char *)&FL_WriteWord;
Pd = (unsigned char *)(0x1000);
do{
*Pd++ = *Ps++;
} while(--i);
}


作者: seuafu2005    时间: 2006-12-28 12:02

关于跳转到ram请参考置顶帖子中关于flash擦写的帖子

http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104326&ID=104326
作者: tiaodekeyi    时间: 2006-12-28 16:55

刚看了一下,还是看得不太明白,版主能不能简单跟我解释一下?
就是在主函数中如何做应用?如何跳到RAM中执行
非常的感谢!!!
作者: seuafu2005    时间: 2006-12-29 10:28

这个这个,这个帖子http://bbs.eccn.com/dispbbs.asp?BoardID=3&RootID=104074&id=104198&star=2&skin=
应该比较清楚了,strongChen版主贴出了代码,你可以参考




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