Board logo

标题: [求助]如何将程序复制到RAM并跳转到RAM中执行 [打印本页]

作者: felix1945    时间: 2006-6-28 18:02     标题: [求助]如何将程序复制到RAM并跳转到RAM中执行

使用的单片机为MC9S12C32  


1、在执行FLASH写程序时,每次全速运行到FSTAT_CBEIF=1;的后一步程序就会自动停止,再点全速执行还能继续往后执行,请问是什么原因?是否是因为程序没有复制到RAM里运行?


 2、如何将程序复制到RAM并跳转到RAM中执行,最好有资料或相关的程序,小弟领悟能力不是很强,恳请各位大侠多多帮忙!


作者: seuafu2005    时间: 2006-6-30 15:52

程序要copy到RAM中去跑

很多人提出了你的第二个问题。我用PE生成了一个flash操作的C语言程序,是基于S08GT60的,S12的flash操作和S08的基本类似,关键是看如何copy到RAM和在RAM中执行,供你参考。
作者: 碧落星空    时间: 2006-7-3 09:03

版主能不能把你说得程序发上来
作者: seuafu2005    时间: 2006-7-3 10:29

http://bbs.eccn.com/uploadImages/S08GT60.zip

sorry,我记得好像上传了,不知道为啥没有显示。再传一下,重点可以看看IFsh1.c文件
作者: tiaodekeyi    时间: 2006-8-2 10:21

版主你好,我看过你发的那个文件,因为我是刚入门的,所以有些简单的问题还想请假下版主,谢谢。
1.static void FnCmdInRam_(byte Comand_,word Addr_,byte Value_)还有static void FnBurstProgCmdInRam_(word src, word dst, word size )这个函数的参数分别指的是什么?
2.你能简单的跟我说一下这二个函数的功能么?
3.如果版主有S12的flash操作,希望能上传一下。
再次的表示感谢!!
作者: seuafu2005    时间: 2006-8-2 16:42

在S08的单片机flash擦写里面有普通的byte programme和burst programme两种,所以FnBurstProgCmdInRam函数进行busrst programm。FnCmdInRam主要执行erase和字节写的操作。里面的参数主要是:
comand:操作命令,擦除或者字节写入
addr: 擦除或者写入的地址
value:写入flash的数据

第二个函数里面,src指你批量写入前存放的数据,dst指要写入的地址,size指总共写入的字节数目


S12的flash主要是word写入,就是一个字一个字的写入,具体操作过程和S08是一样的,所以你可以仿照S08的步骤来做。
作者: shpdlizj    时间: 2006-8-4 15:56     标题: 我前面发的帖里有你需要的例子

请下载例子




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