回覆列表
-
1 # 電子創客營
-
2 # 嵌入式筆記v
引入RTOS(實時作業系統)優缺:
主要優點:
1.併發性:CPU利用率高,多工同步執行
2.模組化:獨立模組程式設計,方便管理和維護
3.生態化:很多軟體元件是基於RTOS的,如FreeModbus,Lwip(主要還是基於作業系統應用)
4.實時行:避免了裸機一個while(1)大迴圈內,嵌套了一個(或多個)延時函式,導致的整個系統實時變差。
主要缺點:
1.程式執行時序可能不能精準操控,導致會出現一些異常bug,也不容易定位問題。
2.共享資源若未進行互斥鎖保護,容易導致多個任務訪問時變數的不確定性引起的bug
3. 容易觸發段錯誤,導致系統崩潰: 當多工存在申請記憶體,釋放記憶體時,容易出現記憶體洩露,釋放已釋放過的舊記憶體等等
首先要知道我們使用RTOS的用處是什麼?它主要解決多工以及實時性的問題。它把微控制器模擬出來多工同時執行的效果,實際上每一次還是隻執行一個任務。所以RTOS就存在多工切換,任務間通訊,以及每個任務堆疊空間大小分配的問題。
所以可以說使用RTOS解決了一些問題,簡化開發,但是也會帶來一些使用的挑戰。如果一不小心就容易出現程式跑死的問題。但是對於有經驗得工程師會知使用多工RTOS時候哪些地方要避免。
我在專案裡面現在也基本上都會用RTOS的,我的感受就是用起來不難,用的好避免這些坑還是需要多多使用,多踩踩坑就慢慢知道哪裡容易出問題。這樣RTOS才能成為專案開發的利器!