这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » FLASH 【转帖】FLASH 问题

共2条 1/1 1 跳转至

FLASH 【转帖】FLASH 问题

院士
2006-09-17 18:14:16     打赏
FLASH 【转帖】FLASH 问题



关键词: FLASH     转帖     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 问题、
最近有几台设备, 使用过程中突然程序丢失, 不知道怎么回事。使用的是市电,135的片子,工作环境比较恶劣。不知有没有哪位遇到过同样的问题。
回复:
应该是执行了对FLASH的操作,建议对FLASH操作用多重判断,只有当多重条件都满足时再执行操作,这样就不会有问题。 1: 问题、
本来不打算用1121的FLASH,现在想用1121的FLASH了,但是不知道能够写多少次,我在1121的资料上,还有430的书上也没有查到,请用过的朋友指点!:)
回复:
典型值10万次,利尔达首页的"MSP430系列单片机"里有下载的数据手册。 2: 问
430的jtag方式和bsl方式都在现场的环境下显的不实用,现场的外部接口只有串口,请教下有什么方式可以实现程序的更新呢?

(一):1 写一段升级程序,包括FLASH擦写和串口通信,尽可能短,最好用汇编写。
2 主程序检测到串口的升级指令后,将此段程序搬移到RAM里运行。
3 擦除FLASH,接收串口数据,写入FLASH。此过程最好关闭所有中断。
4 升级完毕,写入错误的狗口令,复位。OK!

最关键是升级程序尽可能短,留出足够的接收缓冲,512K很合适,正好FLASH的一段。

此方法试过,速度很快。
(二)1.修改连接文件,定义一个段为COM,地址为从0xc000-0xc200;
修改CODE段的开始地址为0xc200
2.编写一个更新flash主程序的软件例如:void downsoft"COM"
将其定位在flash的COM段中,同时你的串口接收程序也必须放在COM段中,我是使用软串口实现的,
定义中断函数TIMERA0ISR“COM”。
3 在main()函数中定义一个标志位flag,

main()

{
if(flag) downsoft();
}
4.在downsoft中对中断接收到的数据进行处理,擦除主程序所在的段,将接收到的程序写入从0xc200开始的地址空间内。
5。上电复位即可。

共2条 1/1 1 跳转至

回复

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