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