标题:
hcs08dz60的FLASH编程和擦除
[打印本页]
作者:
pjnlgm1986
时间:
2009-12-2 10:35
标题:
hcs08dz60的FLASH编程和擦除
请问有谁写过hcs08dz60的FLASH编程和擦除的程序,在编程和擦前应注意什么?
我写的程序数据就是烧录不到FLASH中
作者:
pjnlgm1986
时间:
2009-12-2 21:29
请高手看一下我的程序为甚麽不能连续的写入到FLASH指定的地址,只能写一个字节进去
void WriteToFlash(byte * dest,byt* sour,word length)
{
word i;
while(FSTAT & 0x30);
FSTAT = 0X30;
while(!(FSTAT&0X80));
while(length--)
{
*dest = *sour;
FCMD = 0X20;
FSTAT = 0X80;
while(!(FSTAT & 0X80));
while(!(FSTAT & 0X40))
}
}
在调试过程中如果单步执行一个自己的数据都写不进去
另外我也看了一些资料,说FLASH的擦写需要调到RAM中去执行,是为什么?
有的程序有asm机器码的是怎么个道理呢?
我也在做bootloader问题多多,郁闷!!已经调了好几天了
有没有高人指点一下呀!~~~~
作者:
fayefayehoo
时间:
2009-12-8 14:53
FSTAT = 0x80;
while(!(FSTAT & 0x80));
asm("RTC");
你先把这3句的机器码找到,存到数组wait[]里(ram),然后在"FCMD = 0X20"后, 用asm("JSR wait")。
作者:
achao86926
时间:
2010-6-19 17:58
3楼说的很对,RAM中运行的机器码为
UINT8 code_buf[]=
{
0xc6,0x18,0x25,0xaa,0x80,0xc7,0x18,0x25,0xc6,0x18,0x25,0xa5,0x40,0x27,0xf9,0x81
};
0x81是RTS指令,不是RTC指令,在64K范围内跳转应该使用RTS就可以了,如果超过64K就必须用RTC了,
作者:
唯茹独尊
时间:
2010-6-23 13:57
顶一把,我也不知道什么意思,从没刷机过
作者:
望穿的微笑
时间:
2010-6-23 13:57
"9RIA天地会"官方合作
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0