確定是hardfault故障,根據提供的方法確定位置在tmos_msg_receive()函數中,是什么原因引起的?
熱門產品 :
CH339: 7端口多功能USB HUB控制器芯片
確定是hardfault故障,根據提供的方法確定位置在tmos_msg_receive()函數中,是什么原因引起的?
您好,是否每次都是同樣的串口打印信息
如果不是,串口打印信息有隨機變化,要排查是否有數組溢出或越界訪問;
如果每次串口打印都在固定的一兩處位置,排查以下常見原因:
①中斷服務函數中不要直接安排TMOS事件,即不要使用tmos_start_task、tmos_set_event等一系列接口;建議是在中斷服務函數中置標志變量后快速退出,在主循環(huán)中根據標志變量安排TMOS事件。
②檢查安排TMOS事件時,不要啟用不存在的事件宏或是傳遞了錯誤的事件宏。
③涉及內存申請的代碼,不要用malloc接口,建議使用tmos_msg_allocate等tmos系統(tǒng)下監(jiān)管的內存管理接口函數。