CH573,在长时间挂机时,偶尔会复位

确定是hardfault故障,根据提供的方法确定位置在tmos_msg_receive()函数中,是什么原因引起的?

1695778623183781.png

1695778623119277.png


您好,是否每次都是同样的串口打印信息

如果不是,串口打印信息有随机变化,要排查是否有数组溢出或越界访问;

如果每次串口打印都在固定的一两处位置,排查以下常见原因:

①中断服务函数中不要直接安排TMOS事件,即不要使用tmos_start_task、tmos_set_event等一系列接口;建议是在中断服务函数中置标志变量后快速退出,在主循环中根据标志变量安排TMOS事件。

②检查安排TMOS事件时,不要启用不存在的事件宏或是传递了错误的事件宏。

③涉及内存申请的代码,不要用malloc接口,建议使用tmos_msg_allocate等tmos系统下监管的内存管理接口函数。


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