但是操作系統不是剛需,上操作系統比較占用單片機的資源,比如占用比較多的FLASH和RAM,間接增加了硬件成本,哪怕成本增加1毛錢,對于上量的產品,分分鐘是一個工程師的工資。
我做了單片機開發10幾年,大多數產品其實還是裸機編程,用到操作系統的比較少。
當然,這個跟產品功能有關,一般產品功能復雜、實時性要求苛刻的就會上操作系統。
目前用的比較多的就是實時操作系統,比如主流有uC/OS-II、FreeRTOS、rt-thread。
下面,簡單給大家說下3個系統各自優缺點,如有不對,請指正!
一、uC/OS-II
uC/OS-II 是 Micrium 公司開發的商業實時操作系統,它的內核設計非常穩定和可靠,更加注重調度算法和系統服務的豐富性,適合于需要更高實時性和穩定性的應用。
uC/OS-II 的優缺點如下:
特點:
對開發友好:資料多。
實時性:uC/OS-II 可以提供非常快速的中斷響應和任務切換,確保系統實時性。
可移植性:uC/OS-II 可以支持多種不同的處理器架構,使得應用程序更易于移植到不同的硬件平臺上。
可靠性:由于 uC/OS-II 的內核設計非常穩定和可靠,因此它被廣泛應用于各種不同的嵌入式系統中。
成熟的生態環境:由于 uC/OS-II 已經發布了很長時間,因此它的社區和生態環境非常成熟和完善,用戶可以方便地獲取文檔、示例和支持。
缺點:
商業授權費用:uC/OS-II 是一個商業實時操作系統,用戶需要購買商業授權才能使用。
資源占用:uC/OS-II占用單片機資源較多,需要較大的存儲空間和內存空間。
另外,開發者是可以剪裁的,也就是說你可以根據你產品的功能修改系統代碼做定制,前提是你已經吃透了系統的代碼,否則不要輕易嘗試,不然很容易給自己挖坑。
二、 FreeRTOS
FreeRTOS 是一個開源的實時操作系統,目前占有率高。
特點:
商業授權費用:可以免費商用
輕量級:FreeRTOS 的內核非常小巧,適合資源受限的單片機。
實時性:FreeRTOS 可以提供非常快速的中斷響應和任務切換,確保系統實時性。
可移植性:FreeRTOS 可以支持多種不同的處理器架構,使得應用程序更易于移植到不同的硬件平臺上。
社區支持:FreeRTOS 的社區非常活躍,有大量的開發人員參與開發和維護,使得 FreeRTOS 的生態環境非常完善。
良好的文檔和資料:FreeRTOS 的文檔和資料非常豐富,學習和使用 FreeRTOS 相對較為簡單。
缺點:
組件少:部分功能組件不夠完善,比如GUI(圖形界面)、TCP/IP、文件系統需外擴第三方。
三、rt-thread
這個是國內一款適合物聯網產品的實時操作系統,特點是資源占用極低(1.2KB RAM和3KB Flash),代碼架構做低功耗功能比較方便。
優點:
輕量級:RT-Thread 的內核非常小巧,適合資源受限的單片機。
實時性:RT-Thread 可以提供非常快速的中斷響應和任務切換,確保系統實時性。
可裁剪性:RT-Thread 可以按需選擇需要的組件,以減小系統占用的資源。
面向對象:RT-Thread 支持對象化編程,使得代碼更加清晰易懂。
跨平臺支持:RT-Thread 可以支持多種不同的處理器架構。
缺點:
生態相對不夠完善:相比一些成熟的嵌入式操作系統,RT-Thread 的社區和開發人員數量相對較少,生態環境相對不夠完善。
學習曲線較陡峭:RT-Thread 是一個相對較新的操作系統,它的文檔和資料相對較少,學習曲線相對較陡峭。
不適合大型系統:由于 RT-Thread 的內核設計初衷是輕量級和實時性,所以它不適合構建大型的嵌入式系統。
四、自己對RTOS的理解
最后聊一下,我對這些實時操作系統的理解。
我覺得實時操作系統,本質上就是一個實時性高的程序架構。
實時就是能保證我的任務規定的時間內去執行,這用傳統while(1)輪詢方式是實現不了的。
程序架構就好比建房子時的地基,只有地基穩了,才能應對外在惡劣環境對房子造成的影響,比如臺風、地震。
我們寫程序也是一樣的,程序架構就是的”地基”,只有地基穩了,你的程序才能應對項目經理突如其來的改功能、換芯片方案,你的代碼才經得起折騰、產品功能做得穩定。
可惜啊,很多工程師并沒有寫程序架構的能力,因為對經驗和代碼水平要求比較嚴格。
所以一般復雜的項目,直接上現成的、穩定的實時操作系統就可以了。
這樣至少可以保證兩點:
1.程序架構上不出問題。
2.程序的實時性不出問題。
不過用現成的也是有缺點的,就是RTOS的功能很多,有很多你產品壓根用不上,但是你沒辦法,你又不會剪裁,這樣就會浪費你很多單片機資源。
所以這幾年我做項目,一直是用自己寫的程序架構,然后程序實時性通過人工去規避。
比如任務初始化、創建、調度管理。
還有實時操作系統一些實用功能,比如隊列,也是產品常用的,只是我自己寫了更簡化的代碼。
審核編輯:劉清
-
單片機
+關注
關注
6035文章
44553瀏覽量
634756 -
RAM
+關注
關注
8文章
1368瀏覽量
114651 -
操作系統
+關注
關注
37文章
6808瀏覽量
123291 -
FreeRTOS
+關注
關注
12文章
484瀏覽量
62150
原文標題:單片機能運行操作系統嗎?
文章出處:【微信號:nanshuqg,微信公眾號:無際單片機編程】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論