回答

收藏

蓝牙数据存储折腾

#其他 #其他 1538 人阅读 | 0 人回复 | 2016-10-21

通过协议栈中API函数去操作flash,调用pstorage_store或者pstorage_update存储数据之后,出现flash中数据异常的问题。
其中定义的module 中block size:800Bytes  block count:5个,在存储的过程中出现以下的问题,每次写flash的时候,数据都能写进去,但是在固定的位置会出现一些固定的乱码。具体截图如下:

初步解决办法
经过各种测试,发现这个问题一直存在,但是通过对要读写的数据进行按要求的个数写时,问题能解决,但是按规定的blocksize去写的话就没办法不产生这个问题,所以最终采用根据要写的数据个数来确定(满足字对齐的要求)。

Flash出现问题的原因已经弄清楚,要严格的满足4字节对齐的含义,存进去的数组必须定义为32bit的方式,然后必须满足静态static的声明,放才可以正常操作,还有存进去的数据要设置好格式以小端模式存储,及低位在低字节存储方式,在读取的时候要注意数据的转化。
具体的flash操作流程明白之后就可以了,先是注册module,然后设置module里面的block大小和block数量,满足必定的条件方可以操作。
关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条