关闭

CC2541、CC2640 SNV Flash 读写

标签: CC2541flash
4913人阅读 评论(0) 收藏 举报
分类:

1. 在 CC2541 的 OSAL 系统里面,有 SNV 这个功能,就是 Flash 读写功能,main 函数中的  osal_snv_init(); 就是该功能的初始化函数。

int main(void)
{
  /* Initialize hardware */
  HAL_BOARD_INIT();

  // Initialize board I/O
  InitBoard( OB_COLD );

  /* Initialze the HAL driver */
  HalDriverInit();

  /* Initialize NV system */
  osal_snv_init();
  
  /* Initialize LL */

  /* Initialize the operating system */
  osal_init_system();

  /* Enable interrupts */
  HAL_ENABLE_INTERRUPTS();

  // Final board initialization
  InitBoard( OB_READY );

  #if defined ( POWER_SAVING )
    osal_pwrmgr_device( PWRMGR_BATTERY );
  #endif
    
  /* Start OSAL */
  osal_start_system(); // No Return from here

  return 0;
}

我们一般用的就是

osal_snv_write( osalSnvId_t id, osalSnvLen_t len, void *pBuf ) 和

osal_snv_read( osalSnvId_t id, osalSnvLen_t len, void *pBuf ) 函数,

osalSnvId_t id 相当于地址,用户可使用的范围是 0x80 - 0xFE;NV的起始地址是0x7E800,终止地址是0x7F7FF

osalSnvLen_t len 是数据长度;

void *pBuf 是数据内容;

要先写入数据才能读,否则出错。

也可以看一下:

http://e2e.ti.com/support/wireless_connectivity/f/538/p/214637/758111

http://www.elecfans.com/news/wangluo/20140825352199_5.html

写的都很不错。

2. CC2640 也是有 OSAL 的,里面也有一个 osal_snv.h,也有跟 CC2541 一样的功能,只是 osalSnvId_t id 不一样,范围是 0x80 - 0x8F。



0
0
查看评论

【BLE】CC2541之SNV

本文以SimpleBLEPeripheral工程为例,介绍SNV的使用
  • feilusia
  • feilusia
  • 2015-12-06 04:41
  • 6498

ble学习笔记十五----------ble协议栈之flash数据存储实验

协议栈flash数据存储实验 Cc2540自带了256k的flash,可以存储数据也可以存储代码 协议栈自带了snv管理代码,读函数osal_snv_read,写函数osal_snv_write 数据都有一个唯一的id,snv通过这个唯一的id管理FLASH中的数据  OSAL目录下的Bc...
  • retacn_yue
  • retacn_yue
  • 2014-10-30 20:53
  • 4691

<蓝牙BLE>关于cc2540Flash断电保存的操作

cc2540自带128k或者256k的flash内存,可以提供断电保存。将数据进行flash保存之后,在复位或者重启之后,仍 能找到断电之前保存的数据。flash保存主要有以下两种方法。 一、调用osal_snv_write( );和osal_snv_read( ); 首先添加头文件#include...
  • Stephen_Lu_Fahai
  • Stephen_Lu_Fahai
  • 2015-11-10 11:27
  • 1737

第二十节 协议栈Flash数据存储

第二十节 协议栈Flash数据存储 CC254x自带了256K Flash,这256K的储存空间不仅可以储存代码,也可以储存用户的数据,协议栈自带了SNV管理代码,我们只需要学会使用即可。 SNV的使用只有两个函数,分别是读函数osal_snv_read和写函数osal_snv_write,在S...
  • snyanglq
  • snyanglq
  • 2015-11-28 09:48
  • 606

【BLE-CC2640】CC2640之SNV

本文以SimpleBLEPeripheral工程为例,介绍如何使用SNV
  • feilusia
  • feilusia
  • 2017-02-26 06:09
  • 1829

CC254X片上flash读写解析

如果在开发中,希望个别数据掉电不丢失,那么有几种方法可以考虑,一种是通过I2C或者SPI总线外接存储,比如E2PROM或FLASH,如果数据不大,第二种方便的方法就是操作片上flash了,要想操作片上flash,首先要搞清楚片上flash的存储结构以及寻址方式。     ...
  • happytomyoung
  • happytomyoung
  • 2015-10-04 12:00
  • 4752

cc2640 - snv保存配置信息

TI cc2541  cc2640 从flash里面画出来2个page 4k的空间snv区域,其中部分用于协议栈绑定管理功能,给用户留出来部分可用空间,一下以cc2640为例简单说明一下: 1、在bcomdef.h中有如下定义: // Customer NV Items...
  • gyb510
  • gyb510
  • 2016-10-18 15:27
  • 1007

CC254X片上flash读写解析

CC2451中闪存flash分析
  • Xiongzhizhu
  • Xiongzhizhu
  • 2017-03-08 21:41
  • 717

CC2640之OAD固件升级(内置Flash)

本文介绍了OAD的内容,以及ImageA和ImageB等的配置、编译和升级过程。
  • zzfenglin
  • zzfenglin
  • 2016-08-27 19:35
  • 5144

CC2541 OSAL工作原理

蓝牙为了实现同多个设备相连,或实现多功能,也实现了功能扩充,这就产生了调度问题。因为,虽然软件和协议栈可扩充,但终究最底层的执行部门只有一个。为了实现多事件和多任务切换,需要把事件和任务对应的应用,并起一个名字OSAL操作系统抽象层。   OSAL管理的实现   如果实现软件和硬件的低耦...
  • q136287213
  • q136287213
  • 2015-08-11 17:40
  • 1161
    个人资料
    • 访问:214822次
    • 积分:3021
    • 等级:
    • 排名:第13735名
    • 原创:77篇
    • 转载:66篇
    • 译文:0篇
    • 评论:45条
    最新评论