前面有朋友大概了問了這樣一個問題:我想在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架構
經常關注過我分享的朋友會發現,Atomthreads也在我以前分享過的RTOS列表中:
https://www.osrtos.com
3源碼簡介
Atomthreads內核雖小,但該有的都有。而且源碼提供眾多例程,方便初學者學習。
源碼下載地址:
https://github.com/kelvinlawson/atomthreads
內核函數接口:
支持Port
因為Atomthreads是一款非常輕量級的實時操作系統,不像FreeRTOS、RT-Thread、μC/OS等,沒有文件系統、網絡、CLI等一些組件。所以,Atomthreads不適合于實現復雜功能的嵌入式系統。
-
處理器
+關注
關注
68文章
19409瀏覽量
231206 -
操作系統
+關注
關注
37文章
6896瀏覽量
123756 -
RTOS
+關注
關注
22文章
819瀏覽量
119890 -
STM8單片機
+關注
關注
0文章
65瀏覽量
10213
發布評論請先 登錄
相關推薦
鴻道Intewell操作系統的Windows實時拓展方案
![鴻道Intewell<b class='flag-5'>操作系統</b>的Windows<b class='flag-5'>實時</b>拓展方案](https://file1.elecfans.com/web3/M00/03/A6/wKgZO2dqgUyAeOqZAAK_IQxS0J4970.png)
鴻道Intewell-C純實時構型,適合有功能安全認證需求的工業操作系統
![鴻道Intewell-C純<b class='flag-5'>實時</b>構型,適合有功能安全認證需求的工業<b class='flag-5'>操作系統</b>](https://file1.elecfans.com/web3/M00/03/10/wKgZO2djuauAfoMgAABYRV-_QLk895.png)
國產實時操作系統:和RT-Linux,Zephyr的實時性對比
![國產<b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>:和RT-Linux,Zephyr的<b class='flag-5'>實時</b>性對比](https://file.elecfans.com/web2/M00/02/C4/pYYBAGDSzfeAP86XAAAO5PbqJbI698.png)
linux是實時系統還是分時操作系統
ARM開發板上的實時操作系統介紹
簡單認識RTOS實時操作系統
3568F-翼輝SylixOS國產操作系統演示案例
實時芯資訊:Core i7-9700TE與鴻道Intewell實時操作系統適配
嵌入式實時操作系統:Intewell操作系統與VxWorks操作系統有啥區別
![嵌入式<b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>:Intewell<b class='flag-5'>操作系統</b>與VxWorks<b class='flag-5'>操作系統</b>有啥區別](https://file1.elecfans.com/web2/M00/F9/B2/wKgZomaLg_2AJrOLAAIS1VwS7ys667.png)
微內核實時操作系統的介紹
再談嵌入式實時操作系統
![再談嵌入式<b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>](https://file1.elecfans.com/web2/M00/C8/81/wKgaomYVCTGAXoLNAAHKsmHXcPM241.png)
評論