求助!添加了自定义协议解析函数之后,为什么在发送4条指令之后会复位呢?

更改adv_vendor_self_provision_with_peripheral例程, 添加自定义协议主要添加了串口中断接收数据存入环形队列,添加了解析指令函数,但是只能发送4条之后就复位重启了,这个是什么原因导致的?帮忙分析一下!DD673169-D1E0-4780-AF29-45E75F7D8A42.png

您好,代码中有没有启用看门狗。可以在硬件错误中断中加打印,查看一下复位前有没有进入该中断。可以参考下篇博客添加代码。

CH57x/CH58x/CH32V wch risc-v 芯片hardfault问题追踪&程序卡死追踪 - iot-fan - 博客园 (cnblogs.com)

针对串口的环形缓存,可以参考BLE_UART代码进行移植。如果使用到了内存申请与释放,建议使用  uint8_t *tmos_msg_allocate( uint16_t len );  和  bStatus_t tmos_msg_deallocate( uint8_t *msg_ptr ); 这两个接口进行内存管理。这两个接口管理的内存,在协议栈的监管下运行,不会对协议栈产生预期外的干扰。


只有登录才能回复,可以选择微信账号登录