仅仅是在擦和写数据的时候需要在RAM里运行.如果是块擦或写,好象系统自动禁止了所有的中断;
块擦写的速度是6mS;32K区域擦写时间约为1.6秒;这个过程注意看门狗.
块擦写完成后回到FLASH程序区,再收数据;收完数据再回RAM里写;直到完成.
所有的升级完成后,有一个软件复位指令,可让系统立即复位;
一边擦写一边收数据也行,只要RAM区域够大就可以.
另一个方案,仅仅是块擦除在RAM里完成,以字的形式在正常FLASH区域完成写操作;理由是字节或字编程时可以在FLASH程序段完成,不用进入RAM区域;
每次写的时候,系统停止运行(所有程序停止暂停执行,进入休眠状态,肯定是占用了总线的原因);每个字写的时间是约200uS不到;这样写完后程序继续恢复运行;这样的流程更简洁.但用时多一些.写数据的时候什么事都做不了.
注:块擦除操作要单独进行,用时约3mS; |