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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

FreeRTOS系列第2篇---FreeRTOS入门指南

發布時間:2025/3/12 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeRTOS系列第2篇---FreeRTOS入门指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FreeRTOS可以被移植到很多不同架構的處理器和編譯器。每一個RTOS移植都附帶一個已經配置好的演示例程,可以方便快速啟動開發。更好的是,每個演示例程都附帶一個說明網頁,提供如何定位RTOS演示工程源代碼、如何編譯演示例程、如何配置硬件平臺的全部信息。

? ? ? 演示例程說明網頁還提供基本的RTOS移植細節信息,包括如何編寫FreeRTOS兼容的中斷服務例程,不同架構的中斷處理會稍有不同。

? ? ? 通過下面的簡單說明,可以在幾分鐘內運行RTOS。

1.查找相關文檔頁

? ? ? ?FreeRTOS具有詳細的開發說明文檔,可以在其官方網站上查看。首先打開官方網站,目前的網站地址是:http://www.freertos.org。在首頁左側的導航欄中,展開"Supported Devices & Demos"菜單項,單擊"OfficiallySupported Demos"鏈接,去查看FreeRTOS支持的微控制器制造商列表。單擊微控制器制造商名稱,進入具體的制造商文檔頁面列表。

2.獲取RTOS源代碼

? ? ? ?到FreeRTOS官方網站下載源碼,下載包包含RTOS內核源碼和官方移植演示工程。解壓縮后放到合適的目錄下。(如果你不想訪問慢吞吞的國外網站,我在CSDN做了一個鏡像,可以?點擊此處?,這篇文章中有最新的大部分FreeRTOS源碼包下載鏈接)

? ? ? ?每一個RTOS移植包都附帶有預先配置好的演示例程 ,已經創建好了所有必須的RTOS源文件并包含了必須的RTOS頭文件。推薦在提供的演示例程的基礎上進行自己的FreeRTOS應用編程。

3.FreeRTOS源碼目錄結構

? ? ? ?FreeRTOS下載包中包含每個處理器移植和演示例程的源碼。將所有移植包放入一個下載文件中大大簡化了分類處理,但是下載包中的文件數量也多的驚人!無論如何,目錄結構還是非常簡單的,并且FreeRTOS實時內核僅僅只有3個文件(如果需要,還有一些附加文件,比如軟件定時器、事件組以及協程)。

? ? ? 下載包目錄包含兩個子目錄:FreeRTOS和FreeRTOS-Plus。如下所示:

  • FreeRTOS-Plus????????? 包含FreeRTOS+組件和演示例程;
  • FreeRTOS ? ? ? ? ? ? ? ? ? 包含FreeRTOS實時內核源文件和演示例程。

? ? ? FreeRTOS-Plus目錄樹包含多個自述文件(Readme)。接下來本文只描述FreeRTOS內核的核心源文件和演示例程,它們又被分成兩個主要的子目錄,如下所示:

[cpp] view plaincopy print?
  • FreeRTOS??
  • ??|+--?Demo?????包含演示例程工程;??
  • ??|+--?Source???包含實時內核源文件。??
  • FreeRTOS|+-- Demo 包含演示例程工程;|+-- Source 包含實時內核源文件。

    ? ? ? RTOS代碼的核心包含在三個文件中:tasks.c、queue.c、list.c。這三個文件位于FreeRTOS/Source目錄。在該目錄下還包含三個可選的文件:timers.c、event_groups.c、croutine.c,分別實現軟件定時、事件組和協程功能。

    ? ? ? FreeRTOS/Source目錄結構如下所示:

    [cpp] view plaincopy print?
  • FreeRTOS??
  • ????|?+--?Source??FreeRTOS內核代碼文件??
  • ????|???|+--?include??????????FreeRTOS內核代碼頭文件??
  • ????|???|+--?Portable?????????處理器特定代碼??
  • ????|???|??|+--Compiler?x?????支持編譯器x的所有移植包??
  • ????|???|??|+--Compiler?y?????支持編譯器y的所有移植包??
  • ????|???|??|+--MemMang????????內存堆實現范例??
  • FreeRTOS| +-- Source FreeRTOS內核代碼文件| |+-- include FreeRTOS內核代碼頭文件| |+-- Portable 處理器特定代碼| | |+--Compiler x 支持編譯器x的所有移植包| | |+--Compiler y 支持編譯器y的所有移植包| | |+--MemMang 內存堆實現范例

    ? ? ? 每個支持的處理器架構需要一小段與處理器架構相關的RTOS代碼。這個是RTOS移植層,它位于FreeRTOS/Source/Portable/[相應編譯器]/[相應CPU架構]子目錄。

    ? ? ? 對于FreeRTOS,堆棧設計也屬于移植層。FreeRTOS/Source/portable/MemMang目錄下heap_x.c文件給出了多種堆棧方案,后續文章將會詳細介紹堆棧操作。

    ? ? ? 移植層目錄舉例:

    • 如果在GCC編譯器下使用TriCore1782:TriCore特定文件(port.c)位于FreeRTOS/Source/Portable/GCC/TriCore_1782目錄下。FreeRTOS/Source/Portable 子目錄下的所有文件,除了FreeRTOS/Source/Portable/MemMang目錄外都可以忽略或刪除。
    • 如果在IAR編譯器下使用Renesas RX600:RX600特定文件(port.c)位于FreeRTOS/Source/Portable/IAR/RX600目錄下。FreeRTOS/Source/Portable 子目錄下的所有文件,除了FreeRTOS/Source/Portable/MemMang目錄外都可以忽略或刪除。

    ? ? ? FreeRTOS下載包中還包含各種處理器架構和編譯器的演示例程。大多數的演示例程代碼對所有移植都是通用的,位于FreeRTOS/Demo/Common/Minimal目錄。FreeRTOS/Demo/Common/Full目錄下的是歷史遺留代碼,僅用于PC。

    ? ? ? FreeRTOS/Demo目錄結構如下所示:

    [cpp] view plaincopy print?
  • FreeRTOS??
  • ??|+--?Demo??
  • ??|??|+--?Common??????????所有例程都可以使用的演示例程文件??
  • ??|??|+--?Dir?x???????????用于x平臺的演示例程工程文件??
  • ??|??|+--?Dir?y???????????用于y平臺的演示例程工程文件??
  • FreeRTOS|+-- Demo| |+-- Common 所有例程都可以使用的演示例程文件| |+-- Dir x 用于x平臺的演示例程工程文件| |+-- Dir y 用于y平臺的演示例程工程文件

    ? ? ? FreeRTOS/Demo目錄下剩余的子目錄包含預先配置好的工程,可以用于構建個人演示例程。子目錄的命名與移植平臺和編譯器相關。每一個RTOS移植包都有自己的說明文檔。

    ? ? ? 演示例程目錄舉例:

    • 如果以英飛凌TriBoard開發板硬件構建TriCoreGCC演示例程:TriCore演示例程工程文件位于FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC目錄。目錄FreeRTOS/Demo下的所有子目錄(Common目錄除外)都可以忽略或刪掉。
    • 如果以RX62N硬件構建Renesas RX600 IAR演示例程:IAR工程文件位于FreeRTOS/Demo/RX600_RX62N-RDK_IAR目錄。目錄FreeRTOS/Demo下的所有子目錄(Common目錄除外)都可以忽略或刪掉。

    4.編譯工程

    ? ? ? 根據上一節FreeRTOS源碼目錄結構說明的RTOS演示工程的所在的位置,打開并編譯演示工程。

    5.運行演示例程

    ? ? ? 演示例程附帶的說明網頁會介紹如何配置硬件、下載程序和執行演示例程。說明網頁還會提供演示例程的功能信息,這樣你就可以判斷演示例程執行是否正確。

    ?

    總結

    以上是生活随笔為你收集整理的FreeRTOS系列第2篇---FreeRTOS入门指南的全部內容,希望文章能夠幫你解決所遇到的問題。

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