在对spiflash或其他flash进行写操作(没有文件系统)时最长遇到的问题是正在写的时候断电,这时要写的数据没有写进去,那么在下次读取的时候就会造成很严重的后果。
在读取数据的时候可以加一些校验来保证数据的完整性。
1、我们在读取数据时,最先需要知道的就是数据的长度。
那么断电可能导致长度错误,解决方法我遇到的是,每次在写长度的时候,要在两个不同的扇区记录,还要在另外一个扇区记录哪个扇区记录的长度是有效的,进而来保证断电后不会导致严重的后果。
2、使用spiflash存储升级程序时,更要注意如果升级失败,导致程序无法运行的后果。那么就要在flash中划分两个区域都用来做app程序的存储,如果升级失败还可以用另外一块的app程序运行。
我的感觉是这样的操作很麻烦,大家有没有其他的简便又使用的方法吗? |