你好,我试图在ble连接期间作为外设进行加密签名。签名的触发器是onwrite特征。我一直看到的问题是onwrit特征在签名完成后干净地退出,但我立即与0x0A任务或LL2C的原因CO_ERROR_CON_TIMEOUT断开连接。
如果去掉签名,操作照常完成。要在生产环境中进行签名,我必须在之后使用wdg_freeze()和wdg_resume(),因为签名是一个大约9秒的操作。有什么方法可以在我阻塞时发出keepalive请求,以阻止14585超时?
设备:
致那些在未来找到这篇文章的人。最终,我决定将我的ecdsa符号函数分解成多个更小的函数,特别是标量乘法必须在块中完成,我在块之间GOTO_SLEEP和从user_on_system_powered返回。祝你好运,如果你试图做类似的事情,这是一个痛苦的过程。
嗨natebrune,
如果出现CO_ERROR_CON_TIMEOUT超时,则意味着设备已经失去连接,最可能的原因是WDOG过期。看门狗定时器的最大超时时间是2.6秒,如果过期,你将得到一个完整的系统复位或一个不可屏蔽中断(NMI)。将~9秒的操作分解为多个更小的函数是您问题的解决方案,感谢您的指示。另外,请注意,您可以禁用WDOG。请将CFG_WDOG定义检查到da1458x_config_basic.h头文件中。
谢谢,PM_Dialog