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

flash的读写

flash的读写

现在要做一个有关对flash读写的程序,可是不知道怎么写,那位有用C语言写的程序,想参考一下,先谢谢了


 


我的邮箱:qutao713@163.com

论坛里已经有很多例子贴出来了,可以搜索一下。
另外,FLASH的读与RAM的读没有什么区别。
海纳百川  有容乃大

void flash_to_ram(byte *src,byte *dest,byte size)
{
byte i;
for(i=0;i<size,i++)

{
*dest++ = *src++;
}
}

[此贴子已经被作者于2006-8-8 9:30:19编辑过]

我在论坛里搜索了,没有得到我想要的结果,比如
void flash_to_ram(byte *src,byte *dest,byte size)
{
byte i;
for(i=0;i {
*dest++ = *src++;
}
}
如何让指针指到想要的地方
给它一个值,指不到想去的地址了,
帮一下了
停在这都好几天了,没有进展,大家给指点一下了

谢谢了
src和dest应该都是16bit的地址,定义成byte类型肯定不能完整copy
如果使用codewarrior编写的话,可以直接引用C语言库中的函数, memcpy2,原型在string.h头文件中

这里还有一个写好的函数,供你参考
void CopyToRam(unsigned int *dest, unsigned int *source, unsigned int count)
{
do
{

*dest++ = *source++;

} while(--count);

}
现在用的不是CW,是一家公司开发的一个工具,可是dest和source如何指到实际的地址中,就这点不明白了,CW用的不熟,实在抱歉,因为没有他的调试工具
直接赋值就可以了。
海纳百川  有容乃大
就是给dest和source直接赋相应地址值,我好担心,都好几天了,停在这里,动不了
很想用CW,大家都用这个,也好交流,可是没有办法了
什么动不了?不能赋值?
海纳百川  有容乃大
有些不明白怎么个赋值方法,是直接给dest和source赋地址的值吗?就是这个地方不会了,走不下去,
希望你能多指点些,谢谢了,
qutao713@163.com
如果你用C,这又有什么关系?
将数据的地址转换为指针传递就是了……搞不明白什么停在这里不动了

 边凿磨边用
 
 经验同分享
用C语言如何把数据写到指定的flash或ram的地址里去,就是怎么传递一个确切的地址值,然后把数据写进去
很想看个例子,或者大给明确指点一下了
我这有个基于CodeWarrior的例子,希望对你有所帮助:

typedef void (*CallaFun)(void);

unsigned char FunInRam[10];

void TestFunction(void){
asm NOP;
asm NOP;
}

void CopyToRam(void){
char i=8;
char *Ps, *Pd;

Ps = (char *)&TestFunction;
Pd = (char *)&FunInRam;

do{
*Pd++ = *Ps++;
} while(--i);
}

void main(void) {

CopyToRam(); /*Copy code to RAM*/

((CallaFun)&FunInRam)(); /* Call code in RAM */

for(;;) {
} /* loop forever */
}
海纳百川  有容乃大
返回列表