您的位置首页生活百科

cc2530 flash写操作

cc2530 flash写操作

的有关信息介绍如下:

cc2530 flash写操作

在学习cc2530协议栈时,常需要借助于flash存储非易失性数据,比如设备的网络地址、MAC地址等重要信息,而这些常需要借助于Flash存储区,下面简要介绍一下自己对cc2530 flash写操作的理解。

在执行Flash写操作,需要先初始化Flash控制器。与Flash读操作不同的是,cc2530芯片写Flash必须4字节(或是整数倍)数据才能写入Flash页存储区中,建议是在编程之前,先简单看看cc2530芯片datasheet。

对于Flash存储而言,主要有以下特性:

1. 32-bit(也就是4字节)字可编程

2. 页擦除(在Flash擦除基本单位就是页)

3. 锁位确保写保护与代码安全性

4. 页擦除时间约20ms

5. Flash芯片擦除20ms

6. 写4字节(20-bit)时间20us

调用FlashWrite()函数前,请先初始化DMA模块,加快写速度,提高效率,如下就是Flash写数据函数接口,其中addr是写数据的开始地址,一般会给出页码、偏移量与写字节数,需要转换为Flash地址才可以使用。

英文注释:Valid HAL flash write address: actual addr / 4 and quad-aligned.

也就是说根据页码pg与偏移量offset计算,buf参数是欲写入Flash中数据,而cnt是写入次数。

关系式:

buf的长度: length = cnt * 4 ;

写起始地址:addr= (offset + pg×2KB)/4;