由于程序代码中包含主程序区或 E2PROM 区等区域的擦除、编写功能的程序,当系统受到强干扰时,擦
除编写操作就具有一定的风险性。比如在做 ESD/EFT 试验时,程序可能会跑飞,如果直接从外部跑飞到擦除
编写代码处,可能会将非程序意图的改写或擦除,导致系统运行异常。
鉴于此原因,建议对 Flash 主程序区、EEPROM 区或其他区域操作时增加抗干扰措施:
(1) 由于只有当开始标志位 STRT@FLASH_CR 置 1,才会启动或等待 Flash 的擦除/烧写,所以在操作起
始的处增加软件标志,然后在开始标志位 STRT@FLASH_CR 置 1 前检查该软件标志是否匹配,如果标志位
不匹配,操作直接退出,因此不会启动烧写或擦除动作。
(2) 要充分利用 Flash 操作定时器的功能,可以在操作起始处启动 Flash 操作定时器,计算配置好允许操
作的窗口时间,使得程序正常运行到执行擦除或编写操作时,Flash 操作定时器计数值刚好在可执行的窗口范
围内,这样可以避免因程序跑飞导致的误操作。
(3) 尽量避免带参数的主程序区或 EEPROM 区烧写擦除子函数调用。因为程序跑飞时,参数是随机值,
容易误操作。所以建议主程序区或 EEPROM 区擦除子函数,不带参数,函数中对地址赋常值,擦除某固定扇
区。 |