你好,
我们的应用程序基于BLE_APP_ALL_IN_ONE,一切正常工作(PC,Android,iOS设备,user_cfg_feat_sec_req在DA14580DEVKT-P_VC开发期间,在开发期间设置为GAP_SEC1_SEC_PAIR_ENC或GAP_SEC1_AUTH_PAIR_ENC),但在部署在现有板上时,配对停止工作。
如果user_cfg_feat_sec_req设置为gap_sec1_auth_pair_enc,则该配对将失败:
>状态BLE_GAP_SEC_STATUS_CONFIRM_VALUE使用状态失败
如果user_cfg_feat_sec_req设置为gap_sec1_sec_pair_enc,则该配对将失败:
>状态BLE_GAP_SEC_STATUS_DHKEY_FAILURE使用State验证失败
借助许多DA14585_WLCSP34和DA14585_QFN40 Dautheboards,我们找到了原因:使用相同的FW和SmartSnippets Toolbox - Booter,我们发现所有具有OTP编程的失败配对过程的Dautheboard,以及带有空OTP的所有Dauthebles都成功配对。
哪个OTP字段/值导致其解决方法是什么?我们无法调试,因为...... OTP,除非我们有100个欺骗力量。
谢谢,
Bojan.
设备:
嗨bojanpotocnik,
谢谢你的问题在线。请阅读OTP标题,您将看到没有任何与安全性相关的文件。此行为与OTP无关。是否有可能使用BLE嗅探器并共享日志文件,以便我们可以了解在空中发生的事情?
谢谢,PM_DIALOG.
事实证明,它不是OTP的直接错误。
正如评论中在此C代码片段中,如果OTP未编程,则CFG_NVDS_TAG_BD_ADDRESS将用于获取BD地址值。它只是恰好CFG_NVDS_TAG_BD_ADDRESS的值与我们的测试BD地址相同,因此它永远不会实际更改。
当我们开始实际设置真实的BD地址时,CFG_NVDS_TAG_BD_ADDRESS的值不正确,并且在运行时更改地址 - 导致配对失败,如单独的问题中所述 -更改设备BD地址后配对失败。因此,当FW在具有OTP未编程的生产设备上运行时,通过命令设置BD地址 - 导致配对失败。但是,当使用OTP编程的DAUTHEBLES测试时 - OTP中的地址与我们的测试地址(与CFG_NVDS_TAG_BDDRESS相同)不同,再次触发地址更改(将其更改为我们的测试地址) - 将失败进行对。
它没有帮助将CFG_NVDS_TAG_BD_ADDRESS设置为所有0(CO_NULL_BDADDR),行为是相同的。如果更改NVDS_GET_FUNC以返回NVDS_FAIL,则默认对话框BT地址应用于ROM(A8:89:67:45:...)。
嗨Bojan,
我们已从论坛中聘请了这条脱机 - 在您的注册地址发送了一封电子邮件。
谢谢,PM_DIALOG.