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

请教一个flash的读写问题,谢谢!!

请教一个flash的读写问题,谢谢!!

想请教你一个问题
我的片子是MC9Sdg128
我的flash读写程序在不带uc操作系统的,跑起来了
而加上uc操作系统,就老是跑飞了 是什么原因啊?
hello,大家好
操作系统中的中断会干扰程序,另外,你开的stack的size是否足够
这是我写的代码,我想请问,主函数执行了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);
}

hello,大家好
关于跳转到ram请参考置顶帖子中关于flash擦写的帖子

http://bbs.eccn.com/dispbbs.asp?boardID=3&RootID=104326&ID=104326
刚看了一下,还是看得不太明白,版主能不能简单跟我解释一下?
就是在主函数中如何做应用?如何跳到RAM中执行
非常的感谢!!!
hello,大家好
这个这个,这个帖子http://bbs.eccn.com/dispbbs.asp?BoardID=3&RootID=104074&id=104198&star=2&skin=
应该比较清楚了,strongChen版主贴出了代码,你可以参考
返回列表