FreeRtos操作系統(tǒng)
首先,應該介紹什么是FreeRtos,他于單片機而言就是一個管理器,作為管理者管理嵌入式芯片中的任務,堆棧,中斷,隊列等等資源,對于操作系統(tǒng)而言,又分為實時操作系統(tǒng)和非實時操作系統(tǒng),實時操作系統(tǒng)代表任務或者某個功能必須在指定的運行時間內(nèi)完成,保證設備想要執(zhí)行的功能能立即得到執(zhí)行,FreeRtos就是一個迷你型的實時操作系統(tǒng)內(nèi)核。
FreeRtos作為輕量級的操作系統(tǒng)活躍于嵌入式行業(yè)當中。它占用的資源非常少,是為數(shù)不多的能夠在小型單片機上移植的操作系統(tǒng),并且是完全免費的。包括在飛機、航天器上,也在使用一些特別定制的實時嵌入式操作系統(tǒng),來保證設備的正常運轉(zhuǎn)。
作為嵌入式實時操作系統(tǒng),FreeRtos具有搶占式實時操作系統(tǒng)內(nèi)核,也就是說任務之間有優(yōu)先級的區(qū)分,比如一些需要實時響應的功能部分,可以把優(yōu)先級設置得高一些,這樣當需要執(zhí)行的時候,高優(yōu)先級別的任務可以打斷別的低優(yōu)先級任務,率先得到CPU資源,得到執(zhí)行的機會。作為體量而言,他本身占用的rom空間與ram空間就非常小了,它還支持再往下地裁剪,可以將功能裁剪一部分,最小能夠只占用10kb左右的rom空間和大約10kb的ram空間。
互斥鎖—避免死鎖
同時FreeRtos內(nèi)部就有互斥鎖,互斥鎖的作用在于避免死鎖的情況發(fā)生,由于任務運行可能會用到一部分的參數(shù)資源,CPU資源等等,當一個任務占用這些資源并且不釋放的時候,其他的任務是無法調(diào)用這些資源的。那么試想,當兩個任務分別在執(zhí)行的時候,雖然由于單核的原因,任務肯定有掛起的時候,但是掛起并沒有代表任務就釋放了這些資源,當兩個任務分別擁有對方想要使用的資源,所以都等待著對方釋放,當雙方都不釋放的時候,就會造成死鎖,兩個任務都將徹底卡死不再繼續(xù)執(zhí)行,同時對于一些關鍵的代碼段而言,由于任務之間的調(diào)度,可能被多個任務執(zhí)行過甚至更改過參數(shù),這種情況也是需要避免的,這就是互斥鎖的意義,它保證在同一時刻,只能有一個線程去操作關鍵性的共享數(shù)據(jù),保證數(shù)據(jù)不被多任務調(diào)用執(zhí)行,保證任務的正確調(diào)度和數(shù)據(jù)的安全性。
信號量和消息隊列
FreeRtos還有信號量和消息隊列的功能。一個任務可以向消息隊列中添加信息,添加的多條信息按照FIFO先入先出的形式(這種形式也更適合數(shù)據(jù)信息處理)的方式被別的任務接收到,接收到后判定是否執(zhí)行相關操作,這樣可以防止多任務的訪問沖突,也解決了中斷服務程序與任務之間的消息傳遞的問題。
總結(jié)
其實對于單片機或者嵌入式設備而言,FreeRtos并不是百利而無一害,既然作為管理者,肯定是需要CPU資源支持管理調(diào)度的,同時還有rom和ram的消耗,所以對于嵌入式設備而言,是否要上FreeRtos系統(tǒng)是一種權(quán)衡,如果小型的簡單邏輯設備,沒有必要舍近求遠去移植操作系統(tǒng),直接裸奔就是最好的選擇,本身簡單的邏輯也不需要太多的管理支持。
但是隨著邏輯的增多,功能的增多,FreeRtos的必要性就會越來越高,因為邏輯的增多,我們更需要將精力集中于功能部分的開發(fā)而不是這些功能任務間的調(diào)度。任務的運行、掛起、就緒態(tài)之間的轉(zhuǎn)換,也正是FreeRtos的核心,要在眾多任務間做好這件事,并不容易,感謝有這么一種開源免費的操作系統(tǒng),來幫助開發(fā)者精力集中地進行開發(fā),讓設備的運行更穩(wěn)定、更加科學。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多嵌入式工業(yè)計算產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(微信號:cdebyte)進行了解,也可以直接撥打400電話咨詢技術(shù)專員!
相關閱讀:
1、嵌入式開發(fā)遇到數(shù)據(jù)轉(zhuǎn)換解決數(shù)據(jù)流過大的解決辦法
4、日常生活中常見的嵌入式系統(tǒng)物聯(lián)網(wǎng)應用
7 X 24 銷售服務熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 南京辦事處葛經(jīng)理:17626012283
成都總部銷售經(jīng)理:
秦 科(無線模塊):18884314654 馮子恒(無線模塊):18884314734
蔡友銀(無線模塊):13882211021 葛宇龍(通信設備):19138800613
胡兵(外貿(mào)銷售經(jīng)理):18584911141、 [email protected]
業(yè)務郵箱:[email protected] 全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號