缩短单片机内的Flash的擦写时间
查看单片机(HC32F448)的数据手册得到块擦除时间为18+4Thclk (ms)。
一般数据存储都是将1改为0的情况,无法从0改为1,所以需要先擦除然后存储数值。如何缩短Flash的擦写时间?
-
提高时钟频率。
-
软件算法优化。主要是减少擦除次数。
2.1预擦除:在写入数据之前,提前执行擦除操作。这样,当实际写入数据时,Flash已经处于待写状态,从而减少了写入操作的时间。(程序初始化时可以先块擦除)
2.2空间换时间。利用相对多的代码空间来换取相对多的存储次数。
单片机的区域有8K的一页,一次写入16个字节,那么可以写入8192/16=512次。等到存储完成一个区域,再次写入一次时,则需要擦除。不仅减少了擦写时间,而且增加了flash寿命。
注意:要找到这个写入的字节已经存储到一页flash的哪个存储区域。