不能写程序正在运行的程序空间,否则会取指错误
当然也就跑飞了
只有极少数芯片针对这个做了特殊处理,写入代码空间时让CPU挂起等待,写完后接着运行
而绝大多数芯片都没这个功能,不能写程序正在运行的程序空间,否则会取指错误(因为FLASH写入过程中肯定是不能正确读取的)
所以想做IAP升级的话是要先让程序跑到另外的空间运行,比如RAM区、另一个FLASH块等,等写完了再跳回来
而且,要想做到可靠,数据检验、怎样做到写错了还能再次IAP等要花很多脑筋的,诚如LS所说: “想写数据保存可以,想程序升级要很多处理。”
|
|