日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FreeRTOS快速入门-初探FreeRTOS

發布時間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeRTOS快速入门-初探FreeRTOS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首發,公眾號【一起學嵌入式

對于 RTOS 入門系列文章,已經更新完一款(RT-Thread):

助你快速入門 RT-Thread

這個系列的文章結合 RT-Thread,介紹過 RTOS 相關的核心知識。

接下來,開始另外一款 RTOS – FreeRTOS 入門系列,希望能夠幫助初學者快速掌握 FreeRTOS,幫助老手回顧基礎內容。

一起學習、一起進步。加油~

FreeRTOS簡介

先來看看官網介紹,官方網址

https://freertos.org/

FreeRTOS 是一種面向微控制器和小型微處理器的市場領先實時操作系統(RTOS),與世界領先的芯片公司合作開發了18年,現在每 170 秒下載一次。

FreeRTOS根據麻省理工學院開放源碼許可證免費發布,包括一個內核和一組越來越多的物聯網庫,適用于所有行業。FreeRTOS強調可靠性和易用性。

FreeRTOS 合作過的部分 IC 廠商:

特點

FreeRTOS 的主要特點如下:

  • 支持搶占式調度、協作式調度、時間片調度
  • 靈活、快速、輕量級的任務通知機制。
  • 支持消息隊列、二值信號量、計數信號量、互斥量、遞歸互斥、軟件定時器、事件標志組等功能
  • 時鐘節拍鉤子函數
  • 空閑鉤子函數
  • 棧溢出檢測
  • 任務運行時統計信息收集
  • 可選的商業許可和支持
  • 全中斷嵌套模型(對于某些體系結構)
  • 極低功耗應用的無滴答功能
  • 軟件管理的中斷堆棧(這有助于節省RAM)
  • 支持 40 多個體系結構。
  • 模塊化庫。

為什么選擇 FreeRTOS

列舉幾個選擇 FreeRTOS 用于項目開發的幾點原因:

  • 為許多不同的體系結構和開發工具提供單一且獨立的解決方案。
  • 眾所周知,它是可靠的。
  • 功能豐富,仍在持續積極發展。
  • 具有最小的 ROM、RAM 和 處理器開銷。RTOS 內核二進制映像通常在 6K 到 12K 字節的范圍內。
  • 非常簡單——RTOS內核的核心只包含在 3 個 C 文件中。
  • 在商業應用中真正免費使用(詳見許可證條件)。
  • 我們的合作伙伴WITTENSTEIN high integrity systems以OPENRTOS的形式提供商業許可、專業支持和移植服務。
  • 擁有通往 SafeRTOS 的遷移路徑,其中包括醫療、汽車和工業部門的認證。
  • 擁有龐大且不斷增長的用戶群。
  • 包含每個端口的預配置示例。
  • 擁有一個優秀的、活躍的免費支持論壇。
  • 保證在需要時提供商業支持。
  • 提供了大量的文檔。
  • 非常可擴展,簡單易用。

源碼文件結構

官方源碼的下載地址為:

https://www.freertos.org/a00104.html

源碼下載后,是一個壓縮包 FreeRTOSv202112.00.zip,解壓后如下圖所示

FreeRTOS 的源碼在 FreeRTOS 和 FreeRTOS-Plus 這兩個文件夾中。tools 文件夾存放的是一些腳本工具。剩下的文件,看名字就知道是干什么用的了。

FreeRTOS文件夾

這個文件夾里放的是 FreeRTOS 內核相關的文件,打開 FreeRTOS 文件,來看看里面的內容

Demo 文件夾里包含 FreeRTOS 官方為各種單片機移植好的示例工程代碼。

Source 文件夾里存放的是 FreeRTOS 的內核源碼文件。

Demo文件夾

這個文件夾里面存放的是 FreeRTOS 針對不同的 MCU 平臺提供的例程 Demo。開發者可以參考這些 Demo 搭建自己的工程項目。如下圖所示,官方提供的示例工程是非常全面的,幾乎覆蓋了常見的 MCU 平臺。

Source 文件夾

這個文件夾里存放的是 FreeRTOS 的內核源碼文件。也就是我們使用 FreeRTOS 必須用到的文件。下圖中標示出各個部分的用途

include 文件夾是一些頭文件,下面的這些 .c 文件就是 FreeRTOS 的源碼文件。這兩部分是不可或缺的,不必多說。

接下來看看 portable 文件夾,里面包含的是跟編譯器相關的文件夾,使用不同的編譯平臺,選擇對應的支持文件。

我們比較常用的是 keil,這個目錄下只有一個文件,文件名字為 See-also-the-RVDS-directory.txt。即這個目錄下的內容和 RVDS 目錄相同。使用 RVDS 文件夾內的文件即可,具體如下所示

這里邊的關聯文件是連接 FreeRTOS 和具體硬件平臺的橋梁。編寫這些接口文件就是真正的移植過程,這部分工作已經由 FreeRTOS 官方完成了,我們直接拿來用就可以了。

MemMang 文件夾下存放的是跟內存管理相關的文件,共有 5 個 heap_x.c 文件和 1 個 ReadMe 文件。在移植時,根據選用的內存堆分配算法,選用其中一個即可。

License 文件夾

該文件夾下只有一個文件 license.txt,該文件描述的是相關的許可信息。用 FreeRTOS 做產品時需要看看。對于個人學習,暫時不需要關心。

FreeRTOS-Plus 文件夾

FreeRTOS-Plus 文件夾里存放的是第三方產品。

該文件里面也有 Demo 和 Source 文件夾。Source 文件夾里存放的是一些擴展功能源碼文件,例如 CLI、TCP、Trace等等。Demo 文件夾里存放的是擴展功能的示例工程。

如果只是學習和使用 FreeRTOS 系統內核,這部分內容就沒必要看了。

學習資料

官方的資料還是豐富的,打開官網即可獲取到

可以看在線的資料文檔,當然也可以下載官方 PDF 文件

兩個 PDF 文件,一個是手把手入門教程,一個是 API 參考手冊。

不過,這些資料都是英文的。

最后

本篇文章簡單介紹了 FreeRTOS 的一些基本情況,以及源碼文件存放結構等。源碼獲取和資料獲取都做了簡單介紹說明。

為了方便學習,我將官方 PDF 資料和源碼已經下載,并且搜集了一些 FreeRTOS 的學習資料,一起打包放在網盤里了。
在公眾號后臺留言【freertos

今天先到這,下次繼續。加油~

公眾號【一起學嵌入式】,精彩首先送達

總結

以上是生活随笔為你收集整理的FreeRTOS快速入门-初探FreeRTOS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。