确定是hardfault故障,根据提供的方法确定位置在tmos_msg_receive()函数中,是什么原因引起的?
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
确定是hardfault故障,根据提供的方法确定位置在tmos_msg_receive()函数中,是什么原因引起的?
您好,是否每次都是同样的串口打印信息
如果不是,串口打印信息有随机变化,要排查是否有数组溢出或越界访问;
如果每次串口打印都在固定的一两处位置,排查以下常见原因:
①中断服务函数中不要直接安排TMOS事件,即不要使用tmos_start_task、tmos_set_event等一系列接口;建议是在中断服务函数中置标志变量后快速退出,在主循环中根据标志变量安排TMOS事件。
②检查安排TMOS事件时,不要启用不存在的事件宏或是传递了错误的事件宏。
③涉及内存申请的代码,不要用malloc接口,建议使用tmos_msg_allocate等tmos系统下监管的内存管理接口函数。