CH582的BLE_PHY例程在发送和接收同时工作的时候会死机

采用的是LLE_MODE_BASIC模式,


之前每发送一次之后调用一次接收,不会死机。


后来因为有10个CH582同时工作,跑的程序一样,导致需要发送一次多次调用接收,就写了个状态机。

状态机是绝对没问题的,

而且保证每次TX或者RX的回调函数完成后才能出发下次的收或者发。


目前的情况是11个板子同时工作,大概三到五分钟左右会有板子陆续死机,大概会有两到三个板子死机,而且板子不固定的死机,死机之后CH582的I2C等模块都不工作了。


调用收函数

RF_Shut();

RF_Rx(RX_DATA, 192, 0xFF, 0xFF);

调用的发函数

RF_Shut();

RF_Tx(TX_DATA, pMsg[0], 0xFF, 0xFF);


能不能给指引个方向,实在是没有思绪去调试这个问题了

您好,可以在看门狗中断和hard fault中断中添加PC指针打印,监控死机前MCU跑在哪里。

CH573 CH582 CH579 看门狗使用 - debugdabiaoge - 博客园 (cnblogs.com)

CH582 CH592 CH573 PC指针打印(排查程序运行+死循环指示) - debugdabiaoge - 博客园 (cnblogs.com)

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

应用层代码中是否添加了GPIO/TMR等中断,中断服务函数中不要直接调用安排TMOS事件的接口,用记录标志变量的方式,在主循环中安排TMOS事件。

RF代码中的注意点有没有注意到。

image.png



666


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