你好,我正在使用基于DA14580芯片组的PAN1740模块进行开发的DSPS配置文件,
不幸的是,当我尝试断开主机与设备的连接时,我得到一个硬复位,我使用app_disconnect();
功能:
空白app_disconnect(空白)
{
struct gapc_disconnect_cmd *cmd = KE_MSG_ALLOC(gapc_disconnect_cmd,
TASK_APP KE_BUILD_ID (TASK_GAPC app_env.conidx),
gapc_disconnect_cmd);
cmd - >操作= GAPC_DISCONNECT;
cmd - >原因= CO_ERROR_REMOTE_USER_TERM_CON;
//发送消息
ke_msg_send (cmd);
}
通过串口命令断开连接。
任何有关这方面的帮助将非常感谢。
谢谢。
关键词:
设备:
从硬故障处理程序来看PC, STRH和LDRH指令访问错误的内存地址之间的罪魁祸首似乎是不同的。
然而,我不确定是什么原因导致我添加了对齐检查的所有变量。
对于如何解决进一步的调试有什么想法吗?
嗨aley_i,
当您通过uart发送断开命令时,您得到platform_reset ?也许您正在发生内存泄漏,在断开连接时生成数据而没有使用它们。
由于MT_dialog
嗨MT_dialog,
谢谢你的回复,我在主机上发布app_disconnect()后没有得到软件或平台重置,
我应该自己发布复位平台和断开功能吗?
当你说生成数据而不消费它们时,你是在说相关的应用程序控制器任务没有被正确删除吗?
在我重新开始扫描之前,有什么方法可以确保任务被正确删除吗?
谢谢
澄清一下,我有一个祝福的中央设备充当主机(客户端)和BLE配置外围设备(客户端),我从主机应用程序断开命令发送到主机缺口层,这似乎是罪魁祸首,这并不总是发生第一次,有时需要两个或三个尝试。
我试过与外围设备断开连接,结果出现了同样的问题。
嗨aley_i,
对不起,我没有意识到在断开连接命令后你的主机会被硬复位。当你在你的主机上断开连接时,你会得到一个GAPM_DEVICE_READY_IND吗?您正在按原样使用DSPS(主机和设备),并且添加了额外的代码,用于从UART接收数据并将其转换为命令(大多数更改是在外设侧完成的)?您是否能够使用嗅探器跟踪命令并检查LL_TERMINATE事件(是否有该事件的任何重传)?你的设计是基于什么SDK ?您的主机处于完全嵌入式或完全托管模式,主机是否在使用GTL的外部CPU上运行?
由于MT_dialog
嗨MT_dialog,
不,我没有在主机上获得GAPM_DEVICE_READY_IND后我断开,我得到的是GAPC_DISCONNECT_EVT。我只在启动时获得GAPM_DEVICE_READY_IND。
是的,我正在使用DSPS主机和设备,我已经添加了额外的代码来获得主机上的以下命令:
START_SCAN
GET_ADVERTISED_LIST(转储已发布的外设列表)
CONNECT(连接到特定的外围设备)
断开连接(断开连接并重新扫描)
在外围我只有:
SET_NAME(设置外设的名称(发布的数据包))
断开连接
我正在使用DSPSV3.150.2,主机没有运行在使用GTL的外部CPU上。
我在主机和设备中都得到了GAPC_DISCONNECT_EVT,在断开连接的情况下,我已经尝试在每次断开连接后强制GAPM_RESET和GAPM_PLF_RESET,但问题仍然存在。
嗨aley_i,
我重现了你的问题。这个问题是由于构建DSPS的旧SDK3上的一个bug,在之前的SDK3.0.10.1中引入了一个修复。所以我建议使用最新的SDK来解决你的问题,或者等待新的基于SDK5的DSPS发布,它很快就会到来。
由于MT_dialog
谢谢MT_Dialog,
什么时候基于SDK5的DSP出来时?如果我想自己做这个项目,还有一个引导项目。
谢谢
嗨aley_i,
我不知道确切的日期,但通过评估过程,我相信它会很快发布,不幸的是,没有一个新的SDK5移植指南。
由于MT_dialog