您好,我正在使用基于DA14580芯片组的PAN1740模块开发DSPS配置文件,
不幸的是,当我尝试断开主机与设备的连接时,我得到了一个硬重置,我使用app_disconnect();
function:
void应用程序\断开连接(void)
{
结构gapc\u disconnect\u cmd*cmd=KE\u MSG\u ALLOC(gapc\u disconnect\u cmd,
生成ID(任务、应用程序)_环境conidx),任务应用程序,
gapc(断开连接命令);
cmd->operation=GAPC\u DISCONNECT;
cmd->reason=CO\u ERROR\u REMOTE\u USER\u TERM\u CON;
//发送消息
发送消息(cmd);
}
根据串行命令断开连接。
任何有关这方面的帮助将不胜感激。
谢谢。
设备:
从硬件故障处理程序来看,在访问未对齐内存地址的STRH、LDRH指令之间,罪魁祸首似乎有所不同。
但是,我不确定是什么原因导致我为所有变量添加了对齐检查。
有什么办法解决这个问题吗??
嗨,阿莱伊,
当您通过uart发送断开连接命令时,您得到平台\u重置?可能是内存泄漏,在断开连接时生成数据而不使用它们。
谢谢你的对话
嗨,MT\u dialog,
感谢您的回复,在我在主机上发布app\u disconnect()后,我没有收到软件或平台重置,
我应该自己发布重置平台和断开功能吗?
当你说生成数据而不使用它们时,你是说相关的app controller任务没有被正确删除吗?
在我再次开始扫描之前,有没有办法确保任务被正确删除?
谢谢
只是为了澄清,我有一个BLE中央设备作为主机(客户端)和BLE外设作为设备(客户端)配置,我发送一个断开命令从主机应用程序到主机间隙层,这似乎是罪魁祸首,这并不总是发生在第一次,有时需要两个或三个尝试。
我尝试了与外围设备断开连接,但遇到了相同的问题。
嗨,阿莱伊,
抱歉,我没有意识到在断开连接命令后,您的主机会硬重置。一旦你在主机上断开连接,你就会得到一个GAPM\u设备\u READY\u IND吗?您是按原样使用dsp(主机和设备),并且添加了额外的代码来接收来自UART的数据并将其转换为命令(大多数更改是在外围端完成的)?您是否能够使用嗅探器跟踪命令并检查llu TERMINATE事件(是否有事件的重新传输)?你的设计是什么样的SDK?您的主机处于完全嵌入或完全托管模式,主机是否在使用GTL的外部CPU上运行?
谢谢你的对话
嗨,MT\u dialog,
不,断开连接后,我不会在主机上获得GAPM\u DEVICE\u READY\u IND,我得到的只是GAPC\u disconnect\u EVT。我只在启动时获得GAPM\u DEVICE\u READY\u IND。
是的,我使用的是DSPS主机和设备,我添加了额外的代码以在主机上获取以下命令:
开始\u扫描
获取\u播发的\u列表(转储播发的外围设备列表)
连接(连接到特定外设)
断开(断开并重新启动扫描)
在外围方面,我只有:
SET_NAME(设置外设(播发包)的名称)
断开
我使用的是DSPSV3.150.2,主机没有在使用GTL的外部CPU上运行。
我在主机和设备中都得到了GAPC\u DISCONNECT\u EVT以防断开连接,我尝试在每次断开连接后强制GAPM\u RESET和GAPM\u PLF\u RESET,但问题仍然存在。
嗨,阿莱伊,
我能重现你的问题。该问题是由于在构建dsp的旧SDK3上出现了一个bug,在以前的SDK3.0.10.1中引入了一个修复程序。因此,我建议使用最新的SDK来解决您的问题,或者等待即将发布的新的、基于SDK5的DSP版本。
谢谢你的对话
谢谢你的对话,
任何想法基于SDK5当需求方出来? also is there a guide to port the project if I want to do it myself.
谢谢
嗨,阿莱伊,
我不知道确切的日期,但通过评估过程,我相信它将很快发布,不幸的是没有一个新的SDK5的移植指南。
谢谢你的对话