关于cc2540Flash断电保存的操作

cc2540自带128k或者256k的flash内存,可以提供断电保存。将数据进行flash保存之后,在复位或者重启之后,仍

能找到断电之前保存的数据。flash保存主要有以下两种方法。

一、调用osal_snv_write( );和osal_snv_read( );

首先添加头文件#include "osal_snv.h"

然后打开OSAL文件夹下的bcomdef.h,在该文件里面自己添加一个保存的地址。我们设置为0x89,也可以使用里面

已经定义好的0xFF.至于这个地址并不是随意添加的,好像是有个范围的,不过具体多少我忘了,当时我做这个实

验的时候,看到0x89可以用,所以就定义这用了,至于壮哥说过让我们试验一下储存容量,我们也没怎么弄明白。


关于cc2540Flash断电保存的操作_第1张图片


在这之后我们就可以开始进行flash的读写操作了。



这是我们做的一个检验的小实验。设置flash自动保存count的值,按下向下的键时读取出保存的值。断电重启之后,

仍能读取。应用在UART通讯也是可以的。


二、调用HalFlashWrite( );和HalFlashRead( );

首先还是要添加头文件#include "hal_flash.h"

在UART实验中,我们在APP文件下,进行如下操作


当数据传过来的时候,我们先对一个页面进行擦除,等到擦除完成后,再将数据写入FLASH。这里需要注意的是有一些页面是不能进行擦除的,这一部分我也没搞明白,而且都和写的地址是不一样的。请参考大神的解答。



将数据写入flash之后我们就可以调用HalFlashRead( );进行读取啦。


你可能感兴趣的:(蓝牙4.0BLE)