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

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

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

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

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 11:47 ? 次閱讀

文件描述

目前(2017年08月)官網(wǎng)最新版本的FreeRTOS是V9.0.0(其他某些地方已經(jīng)出現(xiàn)了V9.1.0),我們以官網(wǎng)最新為準,使用V9.0.0版本來進行講述。

解壓下載的FreeRTOSv9.0.0源碼,我們可以看見如下一些文件:

預(yù)覽:

1.FreeRTOS V9和之前版本相比

a.V9內(nèi)核源碼(FreeRTOS/Source)有較大差異,其他部分(如Demo例程及FreeRTOS-Plus下)的代碼基本都一樣;

b.目錄結(jié)構(gòu)一樣,也就是各個目錄下的文件一樣(只是文件里面內(nèi)容有差別)。

2.文件描述

細心的朋友可能會發(fā)現(xiàn),解壓后的源碼每一個目錄下都有一個“readme.txt”文件和一些網(wǎng)頁鏈接文件。這兩樣文件就是對所在目錄最好的描述,為了方便初學(xué)者,我簡單講述一下各層目錄及目錄下文件的意思。

第一層目錄:

FreeRTOS:包含Demo例程和內(nèi)核源碼(比較重要,我們就需要提取該目錄下的大部分文件);

FreeRTOS-Plus:包含組件源碼和組件對應(yīng)的Demo例程。這里組件可以理解為擴展功能,如:CLI(Command-Line Interface)命令行界面、FAT文件系統(tǒng)。針對初學(xué)者,這里的內(nèi)容可以暫時不學(xué)。

New - Direct to Task Notifications:任務(wù)相關(guān)描述的網(wǎng)頁鏈接;

New - FreeRTOS+TCP:FreeRTOS與TCP/IP協(xié)議棧相關(guān)描述的網(wǎng)頁鏈接。上一篇文章有朋友留言說FreeRTOS沒有自己支持的GUI,我相信后面應(yīng)該會增加屬于自己的GUI。

Quick_Start_Guide:快速指南,將指導(dǎo)你如何快速移植并在自己的平臺運行FreeRTOS。建議初學(xué)者多看看這個網(wǎng)頁下的內(nèi)容。

readme:自述文件,講述該目錄下各個文件的文件。

Upgrading-to-FreeRTOS-9:版本升級相關(guān)說明的網(wǎng)頁鏈接。比如:向下兼容、創(chuàng)建任務(wù)靜態(tài)分配等更新說明:

-Backward Compatibility

-Completely Statically Allocated Systems

-Creating Tasks and Other RTOS Objects Using Statically Allocated RAM

-Forcing an RTOS Task To Leave the Blocked State

-Deleting Tasks

-Obtaining a Task Handle from the Task Name

-Other Changes

第二層目錄:

FreeRTOS\Demo:這個目錄下內(nèi)容就是Deme例程,我們可以直接打開里面的工程文件,有對應(yīng)的平臺(開發(fā)板)就可以跑起FreeRTOS提供的例程。

提示一下:這里的Demo例程很多都是比較老的,只是后面陸續(xù)有新增進來。拿CORTEX_STM32F103_Keil來說,這都是零幾年Uv2的老工程了。為什么我們需要重新移植,就是這例程太老了,不然我們都直接使用這里的工程了。

FreeRTOS\License:許可文件。

FreeRTOS\Source:內(nèi)核源碼(不用說在,重要文件,移植就是提取該目錄文件)

links_to_doc_pages_for_the_demo_projects:例程說明,比較重要,詳細列出不同廠家的Demo例程并講述了每一個例程重要的信息,如下:

FreeRTOS-Plus\Demo:和上面的Demo類似,這里只是劃分為Plus里面。

FreeRTOS-Plus\Source:組件源代碼。

重要的一些目錄:

FreeRTOS\Source\portable\MemMang:內(nèi)存管理,操作系統(tǒng)都有自己的內(nèi)存管理,這里有五個源文件heap_1.c 至 heap_5.c。簡單來說,5種內(nèi)存管理方式,我們只用一種。

FreeRTOS\Source\portable\IAR:關(guān)于EWARM相關(guān)的底層接口;

FreeRTOS\Source\portable\RVDS:關(guān)于MDK-ARM相關(guān)的底層接口;

提取有用文件建立工程

我們以STM32F103 + MDK-ARM來舉例。

1.提取FreeRTOS中有用文件

通過上面的分析,相信大家對解壓后的文件都有所了解了,我們主要提取FreeRTOS\Source這個目錄下的文件 +FreeRTOS\Demo下對應(yīng)芯片工程中的FreeRTOSConfig.h。

提示:FreeRTOS\Source\portable目錄下是與底層相關(guān)的接口,與底層關(guān)聯(lián),我們許多都用不上,

我們主要提取三個文件:

MemMang:內(nèi)存管理代碼;

IAR:使用EWARM相關(guān)的底層代碼;

RVDS:MDK-ARM相關(guān)的底層代碼;

2.建立工程

這一節(jié)建立工程的內(nèi)容我不會從頭到尾講述,新建工程我已經(jīng)講述的很詳細,不懂的可以參看我下面兩篇文章。我們只是需要在之前新建STM32工程的基礎(chǔ)上添加FreeRTOS相關(guān)源代碼即可。

1.MDK-ARM_新建軟件工程詳細過程

2.EWARM_新建軟件工程詳細過程

在MDK-ARM中添加之后,如下圖:

EWARM建立的工程、提取的文件、新建的工程,將在下一篇文章中為大家呈現(xiàn)。

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

    關(guān)注

    2257

    文章

    10828

    瀏覽量

    352447
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    626

    瀏覽量

    28965
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    483

    瀏覽量

    61724
收藏 人收藏

    評論

    相關(guān)推薦

    freertos最多支持多少個任務(wù)

    以下幾個因素: 系統(tǒng)資源 :FreeRTOS能夠支持的任務(wù)數(shù)量受到系統(tǒng)硬件資源的限制,特別是處理器的RAM大小和性能。RAM用于存儲任務(wù)的控制塊(TCB)和任務(wù)堆棧,因此RAM越大,理論上可以支持的任務(wù)數(shù)量就越多。 配置選項 :FreeRTOS允許用戶通過配置
    的頭像 發(fā)表于 09-02 14:21 ?271次閱讀

    【《時間序列與機器學(xué)習(xí)》閱讀體驗】+ 時間序列的信息提取

    利用這些信息來建立時間序列模型,可見信息提取是一個關(guān)鍵的步驟。 本章第一小節(jié)直接引入了特征工程定義: 特征工程(Feature Engineering)是將數(shù)據(jù)轉(zhuǎn)換為更好地表示潛在問題
    發(fā)表于 08-14 18:00

    AG32 下使用 freeRTOS 的參考

    \\\\AgRV\\\\examples\\\\freeRTOS 打開工程后,可以先驗證簡單的運行情況。 這個工程中,并沒有 ve 文件(而是使用了默認的 ve
    發(fā)表于 05-28 13:34

    建立freertos的stm32工程,用CMSIS_OS做為應(yīng)用的接口一直實現(xiàn)不了為什么?

    在用過一段時間的cube之后,發(fā)現(xiàn)確實是個神器,很方便的就能生成工程。但是對于有強迫癥的我,我就想擺脫cube建立一個自己的freertos工程,然后可以用cube來生成一些初始化代
    發(fā)表于 05-08 06:43

    在stm32使用freertos時首先要移植startup.s文件將里面的中斷函數(shù)名對接一下,為什么我找不到?

    問題是這樣的,我看了別人的教程在stm32使用freertos時首先要移植startup.s文件將里面的中斷函數(shù)名對接一下。 但是我在FreeRTOS官網(wǎng)下載的源碼里面的demo歷程,
    發(fā)表于 04-29 07:32

    STM32F207 CubeMx FreeRtos Lwip無法建立多個端口怎么解決?

    剛剛轉(zhuǎn)入Freertos陣營,就遇到了問題,卡住了,在此懸賞200-500大洋求助。 項目信息: CPU:STM32F207VC PHY:KSZ8041NL 協(xié)議棧:LWIP OS:Freertos
    發(fā)表于 04-23 07:40

    鴻蒙OpenHarmony【創(chuàng)建工程并獲取源碼

    在通過DevEco Device Tool創(chuàng)建OpenHarmony工程時,可自動下載相應(yīng)版本的OpenHarmony源碼。
    的頭像 發(fā)表于 04-19 21:40 ?267次閱讀
    鴻蒙OpenHarmony【創(chuàng)建<b class='flag-5'>工程</b>并獲取<b class='flag-5'>源碼</b>】

    用CubeMx創(chuàng)建了Freertos工程Middlewares-&gt;Tgird_Party-&gt;FreeRTOS -&gt;Souce下面只有幾個空文件夾為什么?

    我用CubeMx創(chuàng)建了Freertos,發(fā)現(xiàn)在工程的Middlewares->Tgird_Party->FreeRTOS ->Souce下面只有幾個空文件夾,而沒有相
    發(fā)表于 03-28 06:20

    用cubemx建立工程描述說找不到Image$$__OpenAMP_SHMEM__$$Base怎么解決?

    哪位大佬有stm32H745ZI的雙核通信例程,我用cubemx建立工程描述說找不到Image$$__OpenAMP_SHMEM__$$Base
    發(fā)表于 03-25 06:11

    在TC275建立的hightec工程里面,怎么移植ILLD庫文件?

    在TC275建立的hightec工程里面,怎么移植ILLD庫文件,謝謝!
    發(fā)表于 01-25 06:38

    如何在INCA的測量文件中記錄數(shù)據(jù)集、ECU描述文件等額外信息?

    是否可以將工作和參考頁的數(shù)據(jù)集、ECU描述文件以及用INCA記錄的標定行為保存在測量文件中并且再次導(dǎo)出?
    的頭像 發(fā)表于 01-17 13:44 ?1392次閱讀
    如何在INCA的測量<b class='flag-5'>文件</b>中記錄數(shù)據(jù)集、ECU<b class='flag-5'>描述</b><b class='flag-5'>文件</b>等額外信息?

    如何將UCOSIII系統(tǒng)移植到ADSPBF609建立工程文件中?

    如何將UCOSIII系統(tǒng)移植到ADSPBF609建立工程文件中,編譯環(huán)境是CCES
    發(fā)表于 01-12 08:20

    使用keil 5.24建立工程時,找不到想用的ADUC7039工程文件支持怎么辦?

    使用keil 5.24建立工程時,找不到我想用的目標芯片ADUC7039的工程文件支持怎么辦?
    發(fā)表于 01-11 08:03

    Python 如何對文件系統(tǒng)進行監(jiān)控提取

    現(xiàn)在有一個應(yīng)用場景,需要對文件系統(tǒng)進行監(jiān)控,發(fā)生變化時產(chǎn)生日志,對新增的文件做一些相應(yīng)的操作。比如說應(yīng)用到我們之前的高潮提取器:若當前文件夾下增加了一個音樂
    的頭像 發(fā)表于 11-02 15:25 ?420次閱讀
    Python 如何對<b class='flag-5'>文件</b>系統(tǒng)進行監(jiān)控<b class='flag-5'>提取</b>

    在STM32F103單片機上移植FreeRTOS

    移植 FreeRTOS 以正點原子的跑馬燈工程為基礎(chǔ),在上面擴展。在基礎(chǔ)工程中新建一個名為 FreeRTOS文件夾: 創(chuàng)建
    的頭像 發(fā)表于 09-28 14:39 ?1532次閱讀
    在STM32F103單片機上移植<b class='flag-5'>FreeRTOS</b>