CC2640 SNV
来源:互联网 发布:php字符串截取 编辑:程序博客网 时间:2024/05/17 23:23
转自:http://blog.csdn.net/feilusia/article/details/57374684
一、简介
本文以SimpleBLEPeripheral工程为例,介绍如何使用SNV。
二、实验平台
协议栈版本:ble_cc26xx_2_01_00_44423
编译软件:IAR Embedded Workbench for ARM Version 7.40
硬件平台:CC26xxDK开发板
仿真器:XDS100V3(香瓜)
暂无
五、基础知识
1、CC2640的SNV是怎么样的?
答:
1)总大小
两页,共4K(协议栈已使用一部分)。
2)可用SNV的ID号
0x80~0x8F都可以用(包含0x80、0x8F),每个ID号最多一次可写入252字节。注:实际可以写几个ID取决于所剩余SNV空间,并不是说可以把所有ID号都写满252字节。
3)工程中可选的SNV大小
可在IAR的预编译处写入三种宏:
①OSAL_SNV=0:0个可写SNV页。工程中不使用SNV,由于绑定信息时需要SNV,该操作将导致无法使用绑定功能。
②OSAL_SNV=1:1个可写SNV页,共2K。
③OSAL_SNV=2(默认):2个可写SNV页,共4K。
2、多次“仿真、退出仿真、仿真”的操作,是否会把SNV擦除?
答:实测不会。
注:CC2541使用仿真时会擦除SNV。
3、如果我想写1K字节到SNV,怎么写?
答:可以每个ID写252字节,一共需要4个ID(1000/252=3.96)。
4、为什么有些工程使用不了SNV(比如组网的例程)?
答:因为组网例程所需flash较大,因此该工程的SNV部分被充分利用在了组网部分。
可以看工程的预编译中包含了“OSAL_SNV=0”。
六、实验步骤
1、编写并添加自定义的SNV驱动
1)写一个驱动GUA_SNV.c(存放在“……\ble_cc26xx_2_01_00_44423\Projects\ble\SimpleBLEPeripheral\CC26xx\Source\Application\GUA”路径下)
2)写一个驱动头文件GUA_SNV.h(存放在“……\ble_cc26xx_2_01_00_44423\Projects\ble\SimpleBLEPeripheral\CC26xx\Source\Application\GUA”路径下)
3)工程中添加GUA_SNV.c
2、应用层调用
1)添加头文件(simpleBLEperipheral.c中)
4)添加测试代码(simpleBLEPeripheral.c的SimpleBLEPeripheral_Init函数末尾)
暂无。
八、实验结果
测试可发现如下现象:
1、当该ID之前未写过数据时,读取的返回值为“NV_OPER_FAILED”。
2、一次最多只能对一个ID写252个字节,写多时虽然返回值仍然是“SUCCESS”,但实测读出来的数据是错的。
3、再次仿真时不会将上次写入的SNV数据擦除。
因此,实验成功。
- CC2640 SNV
- 【BLE-CC2640】CC2640之SNV
- CC2541、CC2640 SNV Flash 读写
- cc2640 - snv保存配置信息
- CC2640
- SNV安装
- snv的使用
- snv更新错误
- 清除SNV用户记录
- 【BLE】CC2541之SNV
- SNV自动定时更新
- snv使用问题
- snv服务器备份方案
- snv服务器的安装
- cc2640看门狗
- CC2640 看门狗
- 【BLE-CC2640】CC2640之LED
- 【BLE-CC2640】CC2640之按键
- JAVA 抛出java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 异常
- 有()个2012位数,其任意两个邻数位依序依序构成的两位数均能被17或23整除。
- App主流框架UINavigationController && UITabBarController的简单使用
- wpf中textbox换行解决方法
- ligerTree的使用
- CC2640 SNV
- memcached 的安装以及简单使用
- Java.lang.StackOverflowError
- 微信小程序request请求后台接口php简单实例
- 前端-浏览器常见兼容性问题以及解决方案
- Swift 3必看:新的访问控制fileprivate和open
- 可循环使用的屏障CyclicBarrier
- c++正则表达式
- webview加载html代码(包含播发腾讯视频的分享代码)