0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FreeRTOS簡(jiǎn)介及FreeRTOS源碼包組成結(jié)構(gòu)

冬至子 ? 來(lái)源:嵌入式系統(tǒng)研發(fā) ? 作者:ESDev ? 2023-06-09 14:21 ? 次閱讀

2.FreeRTOS簡(jiǎn)介

FreeRTOS 是市場(chǎng)領(lǐng)先的面向微控制器和小型微處理器的實(shí)時(shí)操作系統(tǒng) (RTOS),與世界領(lǐng)先的芯片公司合作開(kāi)發(fā)。FreeRTOS目前由亞馬遜公司管理,遵循MIT開(kāi)源許可證協(xié)議進(jìn)行免費(fèi)分發(fā),包括一個(gè)實(shí)時(shí)內(nèi)核和一組不斷豐富的 IoT 庫(kù)。

FreeRTOS的代碼庫(kù)支持 40 多種 MCU 架構(gòu)和 10多種工具鏈,包括最新RISC-VARMv8-M (Arm Cortex-M33) 微控制器。

3.FreeRTOS源碼包組成結(jié)構(gòu)

在FreeRTOS官網(wǎng)可以下載到最新的源碼包,當(dāng)前版本為FreeRTOSv202212.01

FreeRTOS源碼包主要包含2個(gè)子目錄:FreeRTOS 和 FreeRTOS-Plus。

(1)FreeRTOS目錄包含實(shí)時(shí)內(nèi)核源文件和示例工程;

(2)FreeRTOS-Plus 庫(kù)實(shí)現(xiàn)了 FreeRTOS 內(nèi)核的附加功能,包含F(xiàn)reeRTOS-Plus-TCP、FreeRTOS-Plus-CLI和FreeRTOS-Plus-IO等模塊及示例工程。

圖片

FreeRTOS目錄包含實(shí)時(shí)內(nèi)核源文件目錄Source和示例工程目錄Demo。

圖片

FreeRTOS/Source目錄包含內(nèi)核源文件、內(nèi)核頭文件目錄include和處理器相關(guān)的移植文件目錄portable。

FreeRTOS/Source目錄下的內(nèi)核源文件包含3個(gè)核心 RTOS 代碼,分別為:task.c、queue.c和list.c。還包含4個(gè)可選代碼,timers.c實(shí)現(xiàn)了軟件計(jì)時(shí)器;croutine.c實(shí)現(xiàn)了協(xié)程功能;event_groups.c實(shí)現(xiàn)了事件組功能;stream_buffer.c實(shí)現(xiàn)了流緩沖區(qū)功能。

圖片

FreeRTOS/portable目錄包含了不同編譯器和芯片架構(gòu)對(duì)應(yīng)的可移植層代碼,位于FreeRTOS/Source/portable/[compiler]/[architecture]子目錄下,其中[compiler]和[architecture]分別表示編譯器和芯片架構(gòu)。例如,F(xiàn)reeRTOS\\Source\\portable\\RVDS\\ARM_CM3子目錄表示RVDS及Keil開(kāi)發(fā)環(huán)境下ARM Cortex-M3架構(gòu)處理器的可移植層代碼。

此外,F(xiàn)reeRTOS/portable目錄下還包含用于內(nèi)存管理的堆分配方案代碼,位于FreeRTOS/Source/portable/MemMang 目錄中,支持heap_1.c~heap_5.c五種分配方案。

圖片

FreeRTOS/Demo目錄包含所有示例工程的共用目錄Common以及不同編譯器和芯片架構(gòu)對(duì)應(yīng)的專(zhuān)用目錄。例如,F(xiàn)reeRTOS/Demo/CORTEX_STM32F103_Keil目錄是STM32F103微控制器的Keil工程目錄,對(duì)應(yīng)架構(gòu)為ARM Cortex-M3。

圖片

4.FreeRTOS項(xiàng)目工程建立方法

4.1概要

本節(jié)主要介紹基于FreeRTOS源碼包,新建FreeRTOS項(xiàng)目工程所需的必備源文件、頭文件、配置文件和可選源文件。

4.2必備源文件

FreeRTOS項(xiàng)目工程必須包含以下源文件:

(1)FreeRTOS/Source/tasks.c

(2)FreeRTOS/Source/queue.c

(3)FreeRTOS/Source/list.c

(4)FreeRTOS/Source/portable/[compiler]/[architecture]/port.c

(5)FreeRTOS/Source/portable/MemMang/heap_x.c,x為1~5

4.3頭文件

編譯器應(yīng)包含如下頭文件路徑:

(1)FreeRTOS/Source/include

(2)FreeRTOS/Source/portable/[compiler]/[architecture]

(3)使用的示例項(xiàng)目中FreeRTOSConfig.h配置文件所在的目錄

4.4配置文件

配置文件FreeRTOSConfig.h用于為構(gòu)建的應(yīng)用程序量身定制 RTOS 內(nèi)核,并根據(jù)實(shí)際硬件情況對(duì)CPU主頻、中斷優(yōu)先級(jí)等參數(shù)進(jìn)行配置。

FreeRTOS/Demo下的示例項(xiàng)目中均含有配置文件FreeRTOSConfig.h,新建項(xiàng)目時(shí)選取相同編譯器及相同芯片架構(gòu)的FreeRTOSConfig.h文件作為模板,在此基礎(chǔ)上進(jìn)行修改即可。

4.5可選源文件

FreeRTOS項(xiàng)目工程的可選源文件包括:

(1)FreeRTOS/Source/timers.c,用于軟件定時(shí)器功能;

(2)FreeRTOS/Source/event_groups.c,用于事件組功能;

(3)FreeRTOS/Source/stream_buffer.c,用于流緩沖區(qū)功能;

(4)FreeRTOS/Source/croutine.c,用于協(xié)程功能,注意目前協(xié)程功能已 被棄用,不推薦用于新設(shè)計(jì)。

4.6小結(jié)

本節(jié)介紹了基于FreeRTOS源碼包新建FreeRTOS項(xiàng)目工程所需的源文件和頭文件。在編譯工程時(shí)可能會(huì)報(bào)一些錯(cuò)誤;在編譯通過(guò)后,調(diào)試功能時(shí)也可能會(huì)遇到一些問(wèn)題,到時(shí)需要具體問(wèn)題具體分析解決了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7334

    瀏覽量

    150093
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    8966

    瀏覽量

    365009
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2212

    瀏覽量

    81978
  • 計(jì)時(shí)器
    +關(guān)注

    關(guān)注

    1

    文章

    414

    瀏覽量

    32485
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61724
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何移植FreeRTOS源碼

    參照正點(diǎn)原子FreeRTOS視頻教程,首次接觸操作系統(tǒng),做筆記方便回顧目錄如何移植1.復(fù)制粘貼2.工程添加3.路徑添加4.將非源碼文件添加和解決其他編譯問(wèn)題如何移植FreeRTOS源碼
    發(fā)表于 08-03 06:12

    下載并整理FreeRTOS源碼

    一、下載并整理FreeRTOS源碼下載壓縮解壓打開(kāi)解壓后的文件夾打開(kāi)FreeRTOS–Source–portable文件夾再打開(kāi)RVDS文件夾把里面的ARM_CM3文件夾復(fù)制到kei
    發(fā)表于 08-24 07:49

    freertos官方源碼

    源碼有2個(gè),一個(gè)是FreeRTOS 202111.00,一個(gè)是FreeRTOS LTS 202012.03。兩個(gè)源碼
    發(fā)表于 12-06 16:53

    FreeRTOS的移植與FreeRTOS源碼文件作用介紹

    文章目錄一、實(shí)時(shí)操作系統(tǒng)二、FreeRTOS三、移植FreeRTOS的準(zhǔn)備工作(一)、FreeRTOS源碼文件作用介紹1、include文件夾(1)、include/croutine.
    發(fā)表于 02-18 06:13

    FreeRTOS操作系統(tǒng)源碼V3.2

    FreeRTOS操作系統(tǒng)源碼V3.2
    發(fā)表于 03-26 15:24 ?94次下載

    FreeRTOS_002_ 源碼文件描述與提取建立工程

    FreeRTOS_002_源碼文件描述與提取建立工程
    的頭像 發(fā)表于 03-14 11:47 ?2363次閱讀
    <b class='flag-5'>FreeRTOS</b>_002_ <b class='flag-5'>源碼</b>文件描述與提取建立工程

    freertos移植教程_freertos任務(wù)調(diào)度原理

    在移植之前,我們首先要獲取到FreeRTOS的官方的源碼。
    發(fā)表于 04-16 09:16 ?1.2w次閱讀
    <b class='flag-5'>freertos</b>移植教程_<b class='flag-5'>freertos</b>任務(wù)調(diào)度原理

    如何實(shí)現(xiàn)FreeRTOS在Cortex-M3上的移植?

    1. FreeRTOS下載的文件結(jié)構(gòu)FreeRTOS官方網(wǎng)站可以下載到最新版的FreeRTOS
    的頭像 發(fā)表于 01-27 13:49 ?2417次閱讀

    STM32移植FreeRTOS(圖文實(shí)操)

    目錄一、Freertos1、前后臺(tái)系統(tǒng)2、可剝奪型內(nèi)核3、Freertos系統(tǒng)簡(jiǎn)介二、FreeRTOS移植1.在基礎(chǔ)工程種新建Freertos
    發(fā)表于 11-21 19:06 ?9次下載
    STM32移植<b class='flag-5'>FreeRTOS</b>(圖文實(shí)操)

    【STM32】FreeRTOS移植

    00. 目錄文章目錄00. 目錄01. 簡(jiǎn)介02. 預(yù)備工作03. FreeRTOS移植04. SYSTEM文件修改05. 測(cè)試程序設(shè)計(jì)06. 附錄07. 參考01. 簡(jiǎn)介我們已經(jīng)了解
    發(fā)表于 12-04 14:06 ?14次下載
    【STM32】<b class='flag-5'>FreeRTOS</b>移植

    初入FreeRTOS

    源碼3、FreeRTOS移植操作三、在STM32下完成一個(gè)基于FreeRTOS的多任務(wù)程序1、任務(wù)要求2、任務(wù)實(shí)施3、任務(wù)結(jié)果四、總結(jié)一、FreeRTOS介紹1、初識(shí)
    發(fā)表于 12-06 21:06 ?40次下載
    初入<b class='flag-5'>FreeRTOS</b>

    FreeRTOS系列第8篇---FreeRTOS內(nèi)存管理

    本文介紹內(nèi)存管理的基礎(chǔ)知識(shí),詳細(xì)源碼分析見(jiàn)《 FreeRTOS高級(jí)篇7---FreeRTOS內(nèi)存管理分析》
    發(fā)表于 01-26 17:56 ?17次下載
    <b class='flag-5'>FreeRTOS</b>系列第8篇---<b class='flag-5'>FreeRTOS</b>內(nèi)存管理

    STM32FreeRTOS學(xué)習(xí)資料分享

    內(nèi)含STM32 FreeRTOS源碼 以及詳細(xì)的源碼使用教程、以及低功耗設(shè)計(jì)思路等。
    發(fā)表于 10-17 14:17 ?25次下載

    FreeRTOS源碼下載

    內(nèi)存管理文件在FreeRTOS\portable\MemMang文件夾下,FreeRTOS提供了五種內(nèi)存管理方案,對(duì)于移植來(lái)說(shuō),隨便選一種方案都是可以的。
    的頭像 發(fā)表于 02-10 11:00 ?2846次閱讀
    <b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>源碼</b>下載

    FreeRTOS的移植

    FreeRTOS包含Demo例程和內(nèi)核源碼(比較重要,我們就需要提取該目錄下的大部分文件)。 **Source**文件夾里面包含的是FreeRTOS內(nèi)核的源代碼,我們移植FreeRTOS
    的頭像 發(fā)表于 02-14 09:34 ?1018次閱讀
    <b class='flag-5'>FreeRTOS</b>的移植