在 CC2540软件狗中、是否有任何字段可用于存储 可通过 BTool 进行读取/写入的用户数据(16字节或更多字节)?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好 YiKai、
感谢您的回答。
进一步的问题:我无法读取 NV 项。 操作码= 0xFE81、nvId = 0x20、nvDatalen = 0x0E (gapBondRec_t 的大小)。
这些参数是否有任何问题?
[1]: -11:29:34.902
类型:0x01 (命令)
-OpCode:0xFE81 (UTIL_NVRead)
数据长度:0x02 (2)字节
NvID:0x20 (32)
NvDataLen:0x0E (14)
转储(Tx):
0000:01 81 FE 02 20 0E.... 。
----------------------------------------
[2]: 11:29:34.918
类型:0x04 (事件)
-EventCode:0x00FF (事件)
数据长度:0x06 (6)字节
事件:0x067F (1663)(GAP_HCI_ExtentionCommandStatus)
状态:0x02 (2)(参数无效)
操作码:0xFE81 (UTIL_NVRead)
数据长度:0x00 (0)
转储(Rx):
0000:04 FF 06 7F 06 02 81 FE 00 ........
----------------------------------------
此致、
小牛城
你好、Xiaoxiong、
请在 HCI_ext_app.c->processExtMsgUTIL 中查看 HCI_EXT_UTIL_NV_READ/HCI_EXT_UTIL_NV_WRITE。 如果遇到问题、可以在调试模式下运行 HostTest、并在 processExtMsg 中设置断点、并观察操作码提取以验证是否按预期发送命令。
HCI_ext.h:
// HCI 操作码的10位 OCF (操作码命令字段)进一步 //分为两个子部分: //-子组(3位): //- 0 (LL) //- 1 (L2CAP) //- 2 (ATT) //- 3 (GATT) //- 4 (GAP) //- 5 (UTIL) //- 6 (保留) //- 7 (用户配置文件) //-命令(7位)或配置文件(7位) 如果子组值设置为 //用户配置文件(即所有配置文件),则需要使用另一个八位位组来 表示用户配置文件命令。 // #define HCI_EXT_LL_SUBGRP 0x00 #define HCI_EXT_L2CAP_SUBGRP 0x01 #define HCI_EXT_ATT_SUBGRP 0x02 #define HCI_EXT_GATT_SUBGRP 0x03 #define HCI_EXT_GAP_SUBGRP 0x04 #define HCI_EXT_UTIL_SUBGRP 0x05 #define HCI_EXT_PROFILE_SUBGRP 0x07 #define HCI_EXT_UTIL_RESERVED 0x00 #define HCI_EXT_UTIL_NV_READ 0x01 #define HCI_EXT_UTIL_NV_WRITE 0x02
请参阅 TI BLE HCI 供应商特定 HCI 指南中的第9.1节供应商特定命令:
Util NV 读取 63 5 1 0xFE81
Util NV 写入 63 5 2 0xFE82
您决定 nvDatalen。 16字节应该正常。
PS:SNV API 用于存储和读取设置/校准数据的细微调整。 SNV 页面的大小仅为2kB、因此实际上不建议在该存储器中存储大数组、因为 SNV 将被填满、 SNV 驱动器通常必须切换页面并擦除上一页、这会消耗大量电力、还会中断 BLE 连接。