FreeRTOS中文實用教程
0.jpg (18.45 KB, 下載次數: 211)
下載附件
2018-4-19 22:57 上傳
這篇文章的英文原版我是在FreeRTOS上下載得到的。其實我并沒有決定是否要在系統中使用FreeRTOS,雖然我想要的也僅僅是一個實時內核,當然更重要的是免費。之所以翻譯這篇文章倒不是因為FreeRTOS有多么優秀,完全是因為這篇文章還不算太長。而且FreeRTOS.net仿佛致力于這個內核在國內的推廣,也做了不少中文化的工作。所以我是打算利用工作之余,邊看邊譯,到讀完這篇文檔,也就有個中文版了。如果FreeRTOS不棄的話,我倒是情愿放到這個網站上與大家共享。
另外,我本人很懶,沒有翻譯附錄,而且譯完正文后也沒有做過任何檢查。所以如果有任何問題,請不要罵我。
1.1 概覽
[附錄中提供了使用 FreeRTOS 源代碼的實用信息]
小型多任務嵌入式系統簡介
不同的多任務系統有不同的側重點。以工作站和桌面電腦為例:
早期的處理器非常昂貴,所以那時的多任務用于實現在單處理器上支持多用戶。這類系統中的調度算法側重于讓每個用戶”公平共享”處理器時間。
隨著處理器功能越來越強大,價格卻更偏宜,所以每個用戶都可以獨占一個或多個處理器。這類系統的調度算法則設計為讓用戶可以同時運行多個應用程序,而計算機也不會顯得反應遲鈍。例如某個用戶可能同時運行了一個字處理程序,一個電子表格,一個郵件客戶端和一個 WEB 瀏覽器,并且期望每個應用程序任何時候都能對輸入有足夠快的響應時間。
桌面電腦的輸入處理可以歸類為”軟實時”。為了保證用戶的最佳體驗,計算機對每個輸入的響應應當限定在一個恰當的時間范圍——但是如果響應時間超出了限定范圍,并不會讓人覺得這臺電腦無法使用。比如說,鍵盤操作必須在鍵按下后的某個時間內作出明顯的提示。但如果按鍵提示超出了這個時間,會使得這個系統看起來響應太慢,而不致于說這臺電腦不能使用。
僅僅從單處理器運行多線程這一點來說,實時嵌入式系統中的多任務與桌面電腦的多任務從概念上來講是相似的。但實時嵌入式系統的側重點卻不同于桌面電腦——特別是當嵌入式系統期望提供”硬實時”行為的時候。 硬實時功能必須在給定的時間限制之內完成——如果無法做到即意味著整個系統的絕對失敗。汽車的安全氣囊觸發機制就是一個硬實時功能的例子。安全氣囊在撞擊發生后給定時間限制內必須彈出。如果響應時間超出了這個時間限制,會使得駕駛員受到傷害,而這原本是可以避免的。
大多數嵌入式系統不僅能滿足硬實時要求,也能滿足軟實時要求。
術語說明
在FreeRTOS中,每個執行線程都被稱為”任務”。在嵌入式社區中,對此并沒有一個公允的術語,但我更喜歡用”任務”而不是”線程”,因為從以前的經驗來看,線程具有更多的特定含義。
本章的目的是讓讀者充分了解:
在應用程序中,FreeRTOS 如何為各任務分配處理時間。
在任意給定時刻,FreeRTOS如何選擇任務投入運行。
任務優先級如何影響系統行為。
任務存在哪些狀態。
此外,還期望能夠讓讀者解:
如何實現一個任務。
如何創建一個或多個任務的實例。
如何使用任務參數。
如何改變一個已創建任務的優先級。
如何刪除任務。
如何實現周期性處理。
空閑任務何時運行,可以用來干什么。
本章所介紹的概念是理解如何使用 FreeRTOS 的基礎,也是理解基于 FreeRTOS的應用程序行為方式的基礎——因此,本章也是這本書中最為詳盡的一章。
0.jpg (60.73 KB, 下載次數: 171)
下載附件
2018-4-19 23:19 上傳
0.jpg (61.07 KB, 下載次數: 159)
下載附件
2018-4-19 23:19 上傳
任務從非運行態轉移到運行態被稱為”切換入或切入(switched in)”或”交換入(swapped in)”。相反,任務從運行態轉移到非運行態被稱為”切換出或切出(switched out)”或”交換出(swapped out)”。FreeRTOS 的調度器是能讓任務切入切出的唯一實體。
完整的pdf格式文檔51黑下載地址(共149頁):
FreeRTOS中文實用教程.pdf
(3.05 MB, 下載次數: 1408)
2018-4-19 10:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|