最近看見我的一個技術交流群在討論一個問題:在51單片機上跑RTOS有沒有意義?
今天就來圍繞51和RTOS展開講講。
1關于51單片機及性能和資源
51單片機可以說是我們這一代人的經典,因為它資源不是那么多,而且相對簡單,是很多初學者的入門必選之一。
1.51單片機種類51單片機的種類很多,我們這里是一種籠統的叫法,通常來說指的是8位MCU。
比如早期市面上常見的:英特爾的80C51系列、 愛特梅爾的AT89C51系列、 國產宏晶的STC89C51系列、STM8系列,還有恩智浦、微芯等這些公司都有51單片機。
其實,早期很多做通用MCU的半導體公司,自家都有51單片機系列,只是隨著32位單片機的出現,很多以前的51單片機逐漸離開了大家的視野。
2.51單片機的性能再說下51單片機的性能,性能主要是主頻(或者時鐘頻率),當然還有一些其他因素決定性能,比如總線位寬。(可以參看文章《CPU性能由主頻決定嗎?》)
目前51單片機的主頻通常從幾兆到幾十兆,比如STC89C51的主頻可以高達48M。
48M的速度,按理說也不低了,這個速度如果32位MCU,跑GUI基本都可以了。
但是,這個是在8位的51單片機上,因為總線數據位寬的限制、沒有預處理操作等,其性能相對32位來說還是低了很多。
這么說吧,同樣跑一段程序,以48M運行的51單片機,是跑不過同主頻(48M)的32位機(比如STM32)。
當然,51單片機如果以最高48M主頻運行,其性能跑RTOS還是足足有余。
3.存儲資源我們通常說的資源,其實還包含外設資源,比如ADC、I2C等。因為這里討論的是RTOS,這里主要說Flash(用于代碼存儲)和RAM(運行存儲)的資源。
早期的51單片機,因為存儲技術的限制(生產Flash和RAM成本很高),其資源相對都很小。比如經典的AT89C51其內部只有:128Bit的RAM,4K的Falsh。
但隨著存儲技術的成熟,現在51單片機存儲容量都普遍增多了,比如市面上流行的STC單片機,其內部高達8K的RAM,以及64k的Flash.
2適用于51單片機的RTOS有哪些?
上面說了51的性能和資源,再來說說哪些RTOS可以在51單片機上運行。
早期的RTOS,很多都對流行的51單片機做了適配(底層驅動,例程),即使沒有做適配,也做了一些通用的驅動接口,供更多人選擇。
因為現在的芯片制造技術成熟了,然后隨著需求的增加(軟件資源更豐富、要求更高),很多RTOS都普遍偏向于32位的MCU,導致有一些RTOS對51單片機不是那么友好。
當然,目前可用于51單片機的RTOS依然有很多,只是有一些相對小眾化,大家不是那么了解。
像Small RTOS、Keil 自帶的RTX51 Tiny、大家熟悉的uCOS等這些都可以運行在51單片機上的RTOS。
之前給大家分享過一篇文章《STM8都支持哪些RTOS》中有描述,像AtomThreads、 Chibios、 CMX-Tiny+、 embOS這些RTOS都對51單片機做了適配。
我之前學習51的時候,在上面跑過高度裁剪的uCOS,簡單跑兩個任務還是問題不大,包括我給大家分享的文章《在STM8上運行的Atomthreads》還提供了對應的實例供大家學習。
3在51單片機上跑RTOS有沒有意義?
可能很多人認為:現在是32位單片機的天下,再加上51單片機的性能和資源都很少,跑RTOS很吃力,所以在51單片機上跑RTOS沒有意義了。
是的,確實存在這樣的問題。但是,我認為有沒有意義要看情況,在某些情況下,在51單片機上跑RTOS依然有意義。
1.意義不大的情況因為目前確實32位MCU存在各方面優勢的情況,51單片機存在后天的不足,目前很多情況下,在51單片機上跑RTOS其意義確實顯得不是那么大。
比如:一個包含各種外設模塊,處理各種業務邏輯大型的系統,這種情況下不適合用51單片機以及在上面跑RTOS。
還比如:一個功能非常簡單的系統,像采集一個溫度值,通過串口傳輸出去的單元系統。因為簡單項目使用RTOS會額外增加系統的復雜程度。
2.有意義的情況我認為,一個東西的存在必然有它存在的意義。
像用于學習,我覺得意義還是比較大,畢竟RTOS編程思維和裸機思維方式差異比較大。
可能有些初學者目前主要掌握了51單片機的知識,想學習RTOS,這個時候在51單片機上跑RTOS就顯得有意義。
還比如:一個相對不是那么復雜的項目,它的外設模塊(或資源)用的比較多,同時,整體業務邏輯不是那么復雜,也不要求處理太多事件。像采集溫度、濕度傳輸、按鍵檢測等小項目,通過RTOS各任務模塊化運行,我覺得還是比較有意義。
最后,還是那句話,有沒有意義,還與你實際情況有關。
原文標題:在51單片機上跑RTOS有沒有意義?
文章出處:【微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
單片機
+關注
關注
6032文章
44516瀏覽量
633009 -
RTOS
+關注
關注
21文章
809瀏覽量
119433
原文標題:在51單片機上跑RTOS有沒有意義?
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論