前面有朋友大概了問了這樣一個問題:我想在STM8單片機上,不跑操作系統,在需要處理一些業務邏輯時,還需要檢測按鍵短按、長按、多個按鍵同時按下,我要如何實現?
不跑操作系統,這個問題其實是一個“很難”的問題,在單線程(裸機)情況下,處理多件事情,這個邏輯處理必須要嚴謹才行。
但是,有了操作系統,這個問題就不是問題了。
1寫在前面
在不跑操作系統的情況,我曾經也用STM8單線程(邏輯)處理過相對復雜的業務邏輯:檢測鍵盤(短按、長按)、控制顯示、檢測信號、串口收發通信等......
雖然那些復雜的業務邏輯功能實現了,但開發的時間和周期,以及后期更新、維護的成本可想而知。
所以,本文針對資源較小的STM8,推薦大家使用一款輕量級的實時操作系統Atomthreads。
到底有多輕量級?
能支持目前(2018年09月)最小資源(1K RAM,8K ROM)STM8運行五六個線程,可以說問題不大。
如果你的應用程序對RAM占用量很小,可以運行更多線程,當然,線程多少不是問題,能合理處理各項業務邏輯才是關鍵。
為什么不選擇STM32呢?
因為產品成本控制。我曾經也在想,為什么不選擇一個資源大一點,而且速度快一點的STM32來開發呢,便宜的STM32也就兩三元錢,但便宜的STM8就一塊多錢。
說到STM8價格,不得不說51單片機,51單片機價格可以說是STM8的好幾倍,而且資源也沒有STM8豐富。據我了解,還有很多老一輩工程師還在使用51單片機(AT89C51、STC89C51等)。
所以,如果你在學習51開發,有必要學習一下STM8開發。因為做產品的話,STM8比51明顯有優勢。
2
Atomthreads介紹
Atomthreads是一款免費的輕量級實時操作系統,適用于RAM和ROM資源較小的嵌入式系統。Atomthreads在開源BSD許可下發布的,可以不受限制地免費商用。
主要特征
具有操作系統該有的功能:優先級搶占、信號量、隊列、計時器等
輕量級:整個操作系統就幾個C文件
高度可移植的ANSI C代碼,不依賴于任何編譯器
易于閱讀,源代碼提供豐富的注釋
可以使用單個體系結構特定模塊移植到任何CPU體系結構
支持的CPU架構
更多內容請參看官網:
http://atomthreads.com
經常關注過我分享的朋友會發現,Atomthreads也在我以前分享過的RTOS列表中:
https://www.osrtos.com
3源碼簡介
Atomthreads內核雖小,但該有的都有。而且源碼提供眾多例程,方便初學者學習。
源碼下載地址:
https://github.com/kelvinlawson/atomthreads
內核函數接口:
支持Port
因為Atomthreads是一款非常輕量級的實時操作系統,不像FreeRTOS、RT-Thread、μC/OS等,沒有文件系統、網絡、CLI等一些組件。所以,Atomthreads不適合于實現復雜功能的嵌入式系統。
-
單片機
+關注
關注
6035文章
44554瀏覽量
634665 -
操作系統
+關注
關注
37文章
6801瀏覽量
123285
原文標題:在STM8跑個輕量級操作系統,很多復雜問題可以迎刃可解!
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論