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