无RTOS下使用队列出现的问题记录
生活随笔
收集整理的這篇文章主要介紹了
无RTOS下使用队列出现的问题记录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這兩天遇到一個問題,在無RTOS情況下,使用隊列緩存串口接收到的數據,發現跑一段時間后,會出現隊列中*Out和*In在NData為0時不一樣。正常情況,當數據全部讀取完畢后,這兩個地址應該是一致的。后面經過思考,認為應該是我在串口中斷中,將串口接收到的數據寫入隊列。有可能是正常程序正在執行隊列操作,這時候中斷打斷了,寫入或者讀出一個字節,中斷完畢后,主體程序從堆棧中提取中斷前的狀態,從而忽略了中斷中的操作。而在有RTOS中時,我們都會進行關中斷操作。注意,這個目前還只是猜想。沒有切實驗證過。
總結
以上是生活随笔為你收集整理的无RTOS下使用队列出现的问题记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Keil 运行.bat脚本文件
- 下一篇: python之人脸识别