在我自己測試使用自己的OS時候,發(fā)現(xiàn)在藍牙打開后并啟用HAL_SLEEP時,會卡死系統(tǒng)執(zhí)行,使用的庫是V1.2版本,但V1.1版本沒有這個問題,找到根源可能的問題是:
是不是這里會在每次喚醒的時候關(guān)閉Systick定時器?
在我自己測試使用自己的OS時候,發(fā)現(xiàn)在藍牙打開后并啟用HAL_SLEEP時,會卡死系統(tǒng)執(zhí)行,使用的庫是V1.2版本,但V1.1版本沒有這個問題,找到根源可能的問題是:
是不是這里會在每次喚醒的時候關(guān)閉Systick定時器?
并且我在尋找資料的時候發(fā)現(xiàn)CH573芯片Sleep說明(RTC程序說明) - SweetTea_lllpc - 博客園 (cnblogs.com)
這里提到用戶只需要管理好喚醒的事件即可,這個是什么意思?
是控制好中斷中的處理內(nèi)容嗎,詳細來說就是我們可以控制GPIO喚醒和BAT喚醒中斷處理程序,禁止多次定義RTC喚醒中斷的意思?
睡眠喚醒后,systick停止,需要重新初始化。
使用藍牙的時候,進入睡眠只需要開啟HAL_SLEEP,喚醒的方式為GPIO喚醒和tmos任務(wù)喚醒。喚醒后執(zhí)行完成任務(wù)會自動進入睡眠的,無需再自己調(diào)用睡眠。因此只需要管理好自己的喚醒以及執(zhí)行的任務(wù)。
我看到您同事講到,任務(wù)調(diào)度函數(shù)使用注意事項:
禁止在中斷中調(diào)用,包括操作任務(wù)和傳遞消息
我們在中斷中,是不是可以使用tmos_set_event來設(shè)置標志?否則我認為無法管理好自己的喚醒以及執(zhí)行的任務(wù)。
不要在中斷中調(diào)用tmos任務(wù),可以在中斷中置標志,然后某個tmos任務(wù)一直查詢該標志,查詢到則進行執(zhí)行。