这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » uCLinux下写flash的问题

共14条 2/2 1 2 跳转至
菜鸟
2005-09-16 18:40:00     打赏
11楼

" *(volatile unsigned short *)(FM_START_ADDR + 0x555)=0xaaaa"

这个对flash的写操作的地址不对,请查看s3c4510的手册和flash手册,S3C4510会根据外部地址总线的宽度,CPU的内部地址总线需要一个转换。


菜鸟
2005-09-17 01:12:00     打赏
12楼

的确是这样,我把地址搞错了。

应该是0x555<<1=0xAAA。

但是程序运行还是有问题:

现在只能执行第一个fm_write(),然后就死机了。

void send_unlock()
{
fm_write(FM_ADDR_UNLOCK1,FM_DATA_UNLOCK1);
dbg("1st unlock\n");
fm_write(FM_ADDR_UNLOCK2,FM_DATA_UNLOCK2);
dbg("2nd unlock\n");
}

执行完后只显示 1s 就死机了 :(


菜鸟
2005-09-17 01:13:00     打赏
13楼

fm_write是这样定义的

#define fm_write(addr, data) VPshort(FM_START_ADDR + addr) = data

FM_ADDR_UNLOCK1=0xAAA

FM_ADDR_UNLOCK2=0x555


菜鸟
2005-09-19 19:18:00     打赏
14楼
请参看flash手册,program flash完成需要有一个等待时间。

共14条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]