我用的是msp430f248这个芯片,因为产品要保存1000组测试数据,每组8个字节,一共约占8K字节。因为PCB已经很小了,再增加一个片外EEPROM比较困难,而430单片机的Flash可以在程序中擦写,我就想把一部分Flash当成eeprom来用。 因为flash擦除是按256字节的块擦除,我在RAM中设置一个256字节的缓冲区,保存最近的32组测试数据,缓冲区满了之后就存到Flash里边。使用这部分flash时用环形队列的方式来处理,即按块的顺序依次存入,等这一部分的Flash都装满了(即保存了1000组数据)再使用第一次存入的那一个块,如此反复。这样所有的块都擦写一遍的时候就保存了1000组数据,按照Flash能擦写10000次来算,就能使用到第(1000*10000)-1=9999999组数据,这完全大大超过产品的使用寿命。
大虾们说说如此是不是可行? |