0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

請問單片機能運行操作系統(tǒng)嗎?

無際單片機編程 ? 來源:無際單片機編程 ? 2023-03-08 14:03 ? 次閱讀

但是操作系統(tǒng)不是剛需,上操作系統(tǒng)比較占用單片機的資源,比如占用比較多的FLASH和RAM,間接增加了硬件成本,哪怕成本增加1毛錢,對于上量的產(chǎn)品,分分鐘是一個工程師的工資。

我做了單片機開發(fā)10幾年,大多數(shù)產(chǎn)品其實還是裸機編程,用到操作系統(tǒng)的比較少。

當然,這個跟產(chǎn)品功能有關,一般產(chǎn)品功能復雜、實時性要求苛刻的就會上操作系統(tǒng)。

目前用的比較多的就是實時操作系統(tǒng),比如主流有uC/OS-II、FreeRTOS、rt-thread

下面,簡單給大家說下3個系統(tǒng)各自優(yōu)缺點,如有不對,請指正!

一、uC/OS-II

uC/OS-II 是 Micrium 公司開發(fā)的商業(yè)實時操作系統(tǒng),它的內(nèi)核設計非常穩(wěn)定和可靠,更加注重調(diào)度算法和系統(tǒng)服務的豐富性,適合于需要更高實時性和穩(wěn)定性的應用。

uC/OS-II 的優(yōu)缺點如下:

特點:

對開發(fā)友好:資料多。

實時性:uC/OS-II 可以提供非??焖俚闹袛囗憫腿蝿涨袚Q,確保系統(tǒng)實時性。

可移植性:uC/OS-II 可以支持多種不同的處理器架構,使得應用程序更易于移植到不同的硬件平臺上。

可靠性:由于 uC/OS-II 的內(nèi)核設計非常穩(wěn)定和可靠,因此它被廣泛應用于各種不同的嵌入式系統(tǒng)中。

成熟的生態(tài)環(huán)境:由于 uC/OS-II 已經(jīng)發(fā)布了很長時間,因此它的社區(qū)和生態(tài)環(huán)境非常成熟和完善,用戶可以方便地獲取文檔、示例和支持。

缺點:

商業(yè)授權費用:uC/OS-II 是一個商業(yè)實時操作系統(tǒng),用戶需要購買商業(yè)授權才能使用。

資源占用:uC/OS-II占用單片機資源較多,需要較大的存儲空間和內(nèi)存空間。

另外,開發(fā)者是可以剪裁的,也就是說你可以根據(jù)你產(chǎn)品的功能修改系統(tǒng)代碼做定制,前提是你已經(jīng)吃透了系統(tǒng)的代碼,否則不要輕易嘗試,不然很容易給自己挖坑。

二、 FreeRTOS

FreeRTOS 是一個開源的實時操作系統(tǒng),目前占有率高。

特點:

商業(yè)授權費用:可以免費商用

輕量級:FreeRTOS 的內(nèi)核非常小巧,適合資源受限的單片機。

實時性:FreeRTOS 可以提供非??焖俚闹袛囗憫腿蝿涨袚Q,確保系統(tǒng)實時性。

可移植性:FreeRTOS 可以支持多種不同的處理器架構,使得應用程序更易于移植到不同的硬件平臺上。

社區(qū)支持:FreeRTOS 的社區(qū)非?;钴S,有大量的開發(fā)人員參與開發(fā)和維護,使得 FreeRTOS 的生態(tài)環(huán)境非常完善。

良好的文檔和資料:FreeRTOS 的文檔和資料非常豐富,學習和使用 FreeRTOS 相對較為簡單。

缺點:

組件少:部分功能組件不夠完善,比如GUI(圖形界面)、TCP/IP、文件系統(tǒng)需外擴第三方。

三、rt-thread

這個是國內(nèi)一款適合物聯(lián)網(wǎng)產(chǎn)品的實時操作系統(tǒng),特點是資源占用極低(1.2KB RAM和3KB Flash),代碼架構做低功耗功能比較方便。

優(yōu)點:

輕量級:RT-Thread 的內(nèi)核非常小巧,適合資源受限的單片機。

實時性:RT-Thread 可以提供非??焖俚闹袛囗憫腿蝿涨袚Q,確保系統(tǒng)實時性。

可裁剪性:RT-Thread 可以按需選擇需要的組件,以減小系統(tǒng)占用的資源。

面向對象:RT-Thread 支持對象化編程,使得代碼更加清晰易懂。

跨平臺支持:RT-Thread 可以支持多種不同的處理器架構。

缺點:

生態(tài)相對不夠完善:相比一些成熟的嵌入式操作系統(tǒng),RT-Thread 的社區(qū)和開發(fā)人員數(shù)量相對較少,生態(tài)環(huán)境相對不夠完善。

學習曲線較陡峭:RT-Thread 是一個相對較新的操作系統(tǒng),它的文檔和資料相對較少,學習曲線相對較陡峭。

不適合大型系統(tǒng):由于 RT-Thread 的內(nèi)核設計初衷是輕量級和實時性,所以它不適合構建大型的嵌入式系統(tǒng)。

四、自己對RTOS的理解

最后聊一下,我對這些實時操作系統(tǒng)的理解。

我覺得實時操作系統(tǒng),本質上就是一個實時性高的程序架構。

實時就是能保證我的任務規(guī)定的時間內(nèi)去執(zhí)行,這用傳統(tǒng)while(1)輪詢方式是實現(xiàn)不了的。

程序架構就好比建房子時的地基,只有地基穩(wěn)了,才能應對外在惡劣環(huán)境對房子造成的影響,比如臺風、地震。

我們寫程序也是一樣的,程序架構就是的”地基”,只有地基穩(wěn)了,你的程序才能應對項目經(jīng)理突如其來的改功能、換芯片方案,你的代碼才經(jīng)得起折騰、產(chǎn)品功能做得穩(wěn)定。

可惜啊,很多工程師并沒有寫程序架構的能力,因為對經(jīng)驗和代碼水平要求比較嚴格。

所以一般復雜的項目,直接上現(xiàn)成的、穩(wěn)定的實時操作系統(tǒng)就可以了。

這樣至少可以保證兩點:

1.程序架構上不出問題。

2.程序的實時性不出問題。

不過用現(xiàn)成的也是有缺點的,就是RTOS的功能很多,有很多你產(chǎn)品壓根用不上,但是你沒辦法,你又不會剪裁,這樣就會浪費你很多單片機資源。

所以這幾年我做項目,一直是用自己寫的程序架構,然后程序實時性通過人工去規(guī)避。

7617a564-ba9b-11ed-bfe3-dac502259ad0.png

763a835e-ba9b-11ed-bfe3-dac502259ad0.png

比如任務初始化、創(chuàng)建、調(diào)度管理。

還有實時操作系統(tǒng)一些實用功能,比如隊列,也是產(chǎn)品常用的,只是我自己寫了更簡化的代碼。

76707504-ba9b-11ed-bfe3-dac502259ad0.png






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6030

    文章

    44489

    瀏覽量

    631997
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1364

    瀏覽量

    114444
  • 操作系統(tǒng)

    關注

    37

    文章

    6688

    瀏覽量

    123140
  • FreeRTOS
    +關注

    關注

    12

    文章

    483

    瀏覽量

    61918

原文標題:單片機能運行操作系統(tǒng)嗎?

文章出處:【微信號:nanshuqg,微信公眾號:無際單片機編程】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    運行在51單片機上的操作系統(tǒng)

    運行在51單片機上的操作系統(tǒng)
    發(fā)表于 02-10 12:53

    單片機小型操作系統(tǒng)多任務并行的原理

    型號,什么時候有空了我再寫個51單片機的程序)。有這個系列單片機開發(fā)板的可以單步運行看看任務切換過程中“偷換”堆棧內(nèi)容的過程。(后面將分享我在這個平臺下寫的一個簡單的時間片輪轉的小操作系統(tǒng)
    發(fā)表于 10-18 10:59

    51單片機操作系統(tǒng)資料包

    附件里面有關于51單片機操作系統(tǒng)的資料!對大家學習單片機操作系統(tǒng)很有幫助!
    發(fā)表于 07-21 20:10

    國內(nèi)首創(chuàng)實用的單片機操作系統(tǒng)

    多少年了,在單片機領域,全世界有多少人想搞適合單片機操作系統(tǒng),至今沒有搞成功。而今天,我們可以驕傲地說,我們中國人搞成了!這就是TreeOS 1.0單片機
    發(fā)表于 07-30 10:01

    單片機操作系統(tǒng)

    本帖最后由 hkcj 于 2016-10-4 21:06 編輯 大二party,最近在研究單片機操作系統(tǒng)方面的知識,結合書本照貓畫虎了一個簡單的操作系統(tǒng),但我想在空閑任務里放入計算CPU使用率的代碼,這要怎么編
    發(fā)表于 10-04 20:53

    請問雙線程單片機操作系統(tǒng)原理是什么?

    最近在接觸一個雙線程的單片機操作系統(tǒng)。但單片機不都是單線程的嗎?如果真是雙線程的,原理是什么?有沒有大佬能解釋下
    發(fā)表于 01-14 21:54

    51單片機操作系統(tǒng)有哪些

    51單片機操作系統(tǒng)有哪些,星光操作系統(tǒng)是基于51單片機的嵌入式操作系統(tǒng),為單片機開發(fā)提供軟件平臺
    發(fā)表于 07-21 06:39

    FreeRTOS從單片機操作系統(tǒng)

    轉載【連載】從單片機操作系統(tǒng)③——走進FreeRTOS【1】 從單片機操作系統(tǒng)①我們熟悉的單片機編程:這種結構基本上都是在main函數(shù)開
    發(fā)表于 08-23 07:03

    請問一下RT-Thread操作系統(tǒng)運行在什么里面?

    請問一下rt thread操作系統(tǒng)運行在什么里面?是上位機還是運行在移植的單片機里面
    發(fā)表于 02-15 10:35

    51單片機可以跑操作系統(tǒng)嗎?

    據(jù)說單片機可以上操作系統(tǒng),那51單片機可以上操作系統(tǒng)嗎,感覺51單片機性能那么差,還能跑操作系統(tǒng)
    發(fā)表于 11-06 06:59

    51單片機多任務操作系統(tǒng)的原理與實現(xiàn)

    51單片機多任務操作系統(tǒng)的原理與實現(xiàn),在51單片機上模擬操作系統(tǒng)
    發(fā)表于 02-28 15:09 ?16次下載

    C51單片機上移植UCOS操作系統(tǒng)的詳細資料和程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是C51單片機上移植UCOS操作系統(tǒng)的詳細資料和程序免費下載。學習研究操作系統(tǒng)原理以及運行機制很有幫助。
    發(fā)表于 09-03 08:00 ?28次下載
    C51<b class='flag-5'>單片機</b>上移植UCOS<b class='flag-5'>操作系統(tǒng)</b>的詳細資料和程序免費下載

    單片機中嵌入操作系統(tǒng)有哪些優(yōu)缺點

     近年來,在單片機系統(tǒng)中嵌入操作系統(tǒng)已經(jīng)成為人們越來越關心的一個話題。本文通過對一種源碼公開的單片機嵌入式實時操作系統(tǒng)μC/OS-II為例,
    發(fā)表于 08-05 17:34 ?1次下載
    在<b class='flag-5'>單片機</b>中嵌入<b class='flag-5'>操作系統(tǒng)</b>有哪些優(yōu)缺點

    單片機編程和操作系統(tǒng)綜述

    本文分為兩部分——“單片機編程篇”和“操作系統(tǒng)篇”。單片機編程篇主要介紹單片機的各種編程結構,及其實現(xiàn)方法。是在假設已經(jīng)可以驅動單片機和各個
    發(fā)表于 05-08 11:12 ?40次下載

    單片機操作系統(tǒng)有哪些

    單片機操作系統(tǒng)(RTOS)是一種專門設計用于單片機操作系統(tǒng),它可以提供任務調(diào)度、內(nèi)存管理、設備驅動等功能,幫助程序員更高效地開發(fā)嵌入式系統(tǒng)
    的頭像 發(fā)表于 12-08 16:18 ?4804次閱讀