FreeRTOS基礎知識


前面一篇文章介紹了一些命名規范之類的基礎知識,但是我覺得還缺少一定前言知識,就是裸機和操作系統有什么區別,為什么我們需要學freertos,因為招聘要求?那么為什么招聘網又會有這個要求呢?所以我們為什么要去學習這個實時操作系統呢?

早期嵌入式開發沒有嵌入式操作系統的概念 ,直接操作裸機,在裸機上寫程序,比如用51單片機基本就沒有操作系統的概念。通常把程序分為兩部分:前台系統和后台系統。 簡單的小系統通常是前后台系統,這樣的程序包括一個死循環和若干個中斷服務程序:應用程序是一個無限循環,循環中調用API函數完成所需的操作,這個大循環就叫做后台系統。中斷服務程序用於處理系統的異步事件,也就是前台系統。前台是中斷級,后台是任務級。

這里就是平時我們裸機的運行結果,現在比如我在運行task3,突然又想馬上運行task1,這怎么辦?前后台程序就會讓后面的任務執行之后,再去執行task1,這樣實時性受到影響。如果是裸機,要實現也可以,用中斷,可是這樣會讓程序結構變得復雜,因為我想什么時候跳過就跳過,想什么時候執行就執行,所以固定的中斷觸發方式雖然也可以實現一些簡單的跳轉功能,但是當程序復雜之后,這樣的裸機程序難以閱讀和維護。這樣在有操作系統的任務調度之后,就會讓系統響應更具有實時性。

RTOS全稱為:Real Time OS,就是實時操作系統,強調的是:實時性。實時操作系統又分為硬實時和軟實時。硬實時要求在規定的時間內必須完成操作 ,硬實時系統不允許超時,在軟實時里面處理過程超時的后果就沒有那么嚴格。 在實時操作系統中,我們可以把要實現的功能划分為多個任務,每個任務負責實現其中的一部分,每個任務都是一個很簡單的程序,通常是一個死循環。 RTOS操作系統:FreeRTOS,UCOS,RTX,RT-Thread,DJYOS等。 RTOS操作系統的核心內容在於:實時內核。

可剝奪型內核:

RTOS的內核負責管理所有的任務,內核決定了運行哪個任務,何時停止當前任務切換到其他任務,這個是內核的多任務管理能力。多任務管理給人的感覺就好像芯片有多個CPU,多任務管理實現了CPU資源的最大化利用,多任務管理有助於實現程序的模塊化開發,能夠實現復雜的實時應用。

可剝奪內核顧名思義就是可以剝奪其他任務的CPU使用權,它總是運行就緒任務中的優先級最高的那個任務。

 

 

FreeRTOS是一個可裁剪、可剝奪型的多任務內核,而且沒有任務數限制。FreeRTOS提供了實時操作系統所需的所有功能,包括資源管理、同步、任務通信等。 FreeRTOS是用C和匯編來寫的,其中絕大部分都是用C語言編寫的,只有極少數的與處理器密切相關的部分代碼才是用匯編寫的,FreeRTOS結構簡潔,可讀性很強!最主要的是非常適合初次接觸嵌入式實時操作系統學生、嵌入式系統開發人員和愛好者學習。

為什么需要學習這個操作系統:

 

以上信息轉載自正點原子PDF教程。 

學習方法:

1、多練 不要只看書,或者只看資料,只“看”是沒有任何用的!一定要實際動手寫代碼練習,多在開發板上練習。 2、遇到不懂的怎么辦? FreeRTOS還是有一定難度的,在學習的過程中難免會遇到看不懂的東西,如果遇到不懂的就先不要管,先學會怎么調用FreeRTOS的API函數。等以后有時間了在回過頭來重新學習一下。 3、對C語言的要求 需要了解指針、結構體、數據結構中的鏈表等。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM