作者ruemann (此人挂网中……)
看板ASM
标题Re: 关於Firmware Update设计
时间Thu May 22 12:28:41 2008
※ 引述《ast9869 (甘愿为你~)》之铭言:
: 目前在8051上写好了FW(这个MCU是有USB and Flash)
: 但日後想要用USB来Update。但不知道要怎麽设计!
: 我的想法:
: 程式是从到Flash载出来跑的,那更新时不就会写到
: 正在跑的程式吗?不就会造成不可遇期的错误?
: 小弟想了一个方法,不知道可不可行,就是把Main() FlashWrite() FlashErase()
: 等一些不常更动到的Function 用 _at_ 的方式定在Flash的最後区块,
: 是不是就不会有这样的问题呢?
: 希望可以得到一些建议。
建议是厂商有支援会比较好,不过有些方法可以试试看
1. flash要够大,最好是你程式的两倍大或至少要有一个空间可以放要修改的部份
2. 想法:修改程式进入点,第一次用低的一半,第二次用高的一半,第三次用低的一半
3. 优点:应该不会出现问题
4. 缺点:程式要准备两套
5. 流程:烧写没用到的空白区域,烧写过程中不能动到 interrupt 的进入位置,
待烧写完後再关闭 interrup 并烧写最开头的 interrup, reset 等进入
位置,最後再将程式reset (jmp 0)
一定有更好的方法……orz
--
我是宅湾人
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.87.156.98