在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

FreeRTOS的源碼下載

汽車電子技術 ? 來源:嵌入式之入坑筆記 ? 作者:嵌入式之入坑筆記 ? 2023-02-10 11:00 ? 次閱讀

1、FreeRTOS的學習

1.1、FreeRTOS的源碼下載

學習一個操作系統前,首先要下載對應的源碼,用于研究和學習。FreeRTOS的源碼下載鏈接如下:

https://sourceforge.net/projects/freertos/files/FreeRTOS/

頁面圖示如下:

圖片

下載之后的文件為:FreeRTOSv202012.00-LTS.exe.qbl

1.2、FreeRTOS在線API指南

FreeRTOS提供了在線的API接口的指南,這對于開發和學習都是非常的友好的,在線API指南的網址為:

http://web.ist.utl.pt/~ist11993/FRTOS-API/index.html

在線指南的示意圖如下:

圖片

1.3、在線應用指南

除了在線的API應用指南之外,還有一個在線的開發指導手冊,是非常好用的一份手冊:

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

圖示如下:

圖片

2、FreeRTOS移植到MCU

0.基于STM32F103的移植,其它系列MCU類似。

硬件平臺: STM32F103ZET6 ;

軟件平臺:MDK529

FreeTROS版本:FreeRTOS Kernel V10.4.3

1.在工程目錄下新建FreeRTOS文件夾,該文件夾用于存放FreeRTOS相關的文件。

圖片

2.在FreeRTOSv10.2.1FreeRTOSSource路徑下找到FreeRTOS的源碼,將其拷貝到工程中的FreeRTOS文件夾中。

圖片

其中頭文件和源碼源文件是全部要用到的,不做任何刪除。

portable文件夾是和硬件平臺,軟件開發環境相關的文件。FreeRTOS為了讓用戶移植簡單,幫用戶做了很多工作。打開portable文件夾如下:

圖片

3.打開工程,在工程中添加一個專用來存放FreeRTOS的Group

圖片

將FreeRTOS的源文件,內存管理文件,硬件接口文件統統添加到這個FreeRTOS這個Group中

圖片

內存管理文件在FreeRTOSportableMemMang文件夾下,FreeRTOS提供了五種內存管理方案,對于移植來說,隨便選一種方案都是可以的。但是heap_4有內存碎片管理的功能,對內存碎片可以自動監控和收集,所以選擇這個內存管理會更好。

port.c文件在FreeRTOSportableRVDS路徑下找到與自己使用的MCU內核的文件夾:

圖片

4.添加頭文件路徑,需要添加兩個路徑。

圖片

5.編譯

圖片

便已完成之后,提示打不開FreeRTOSConfig.h這個文件。這是因為FreeRTOS源碼中并沒有提供這個文件。

這種情況下有兩種辦法:

第一、自己動手寫一個(哈哈,個人覺得這個對一般人來說不現實);

第二、找一個可以直接用的。

仔細找找會發現,其實官方在很多平臺下都移植了FreeRTOS。去官方的demo中找,FreeRTOSv10.2.1FreeRTOSDemo路徑下存放的全是官方移植的demo。在此路徑下找到CORTEX_STM32F103_Keil文件夾,此文件夾是官方基于STM32F103和MDK平臺移植的demo。(其他平臺參考該方式類似的查找)

在此文件夾下找到FreeRTOSConfig.h文件。

圖片

將其拷貝到源碼的頭文件中。重新進行編譯。

圖片

這種情況下,只要使能一個有關的宏定義為1即可以,在FreeRTOSConfig.h文件中將宏INCLUDE_xTaskGetCurrentTaskHandle定義為1,使能該函數,重新編譯一下,應該就不會報錯了。

6.添加三個宏定義

首先我們需要對FreeRTOS的幾個很重要的問題要有一個認識:

<1> FreeRTOS觸發第一個任務是在SVC_Handler中斷中進行的;
<2> 切換任務是在PendSV_Handler中斷中進行的;
<3> 系統節拍中斷是在SysTick_Handler中進行的。

在我們自己移植的項目中,官方的文件中對3個函數的定義是沒有的,需要我們自己進行一些修改。

在官方的提供的文件中,實現了另外3個相關的函數,名字分別是:

vPortSVCHandler
xPortPendSVHandler
xPortSysTickHandler。

所以,我們只需要根據自己所用的MCU環境進行相應的替換即可以對應上了。在FreeRTOSConfig.h頭文件中做一下宏定義就可以了。注意要將自己的原來3個空函數注釋掉。

這三個宏定義非常重要!!!

#define xPortPendSVHandler       PendSV_Handler
#define vPortSVCHandler           SVC_Handler
#define xPortSysTickHandler        SysTick_Handler

其中,xPortSysTickHandler是系統滴答定時器中斷,用于給FreeRTOS提供運行的心跳節拍的,代碼示意如下:

void xPortSysTickHandler( void )
{
    /* The SysTick runs at the lowest interrupt priority, so when this interrupt
     * executes all interrupts must be unmasked.  There is therefore no need to
     * save and then restore the interrupt mask value as its value is already
     * known - therefore the slightly faster vPortRaiseBASEPRI() function is used
     * in place of portSET_INTERRUPT_MASK_FROM_ISR(). */
    vPortRaiseBASEPRI();
    {
        /* Increment the RTOS tick. */
        if( xTaskIncrementTick() != pdFALSE )
        {
            /* A context switch is required.  Context switching is performed in
             * the PendSV interrupt.  Pend the PendSV interrupt. */
            portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT;
        }
    }


    vPortClearBASEPRIFromISR();
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 移植
    +關注

    關注

    1

    文章

    379

    瀏覽量

    28129
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62166
  • 內存管理
    +關注

    關注

    0

    文章

    168

    瀏覽量

    14137
收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 2.1-FreeRTOS移植--FreeRTOS源碼下載

    操作系統移植RTOSFreeRTOS
    Mr_haohao
    發布于 :2022年08月23日 10:59:27

    freertos源碼的過程?

    看了freertos很久了??词?b class='flag-5'>源碼看的迷迷糊糊原來打算各個擊破 。list.C算是看懂了。目前就不知道咋辦了?請高手講下自己看懂freertos的經歷。 (另外,我以前沒有看懂過ucos代碼)
    發表于 06-18 09:00

    如何移植FreeRTOS源碼

    開發板后贈與的光盤內找到,路徑:A盤->軟件資料->FreeRTOS學習資料->FreeRTOS源碼,之后點擊程序下載移植步驟:1.復制粘貼于基礎工程中新建一個文件夾,可命名為
    發表于 08-03 06:12

    如何添加FreeRTOS源碼

    目錄1、源碼準備2、創建FreeRTOS文件夾3、在工程中添加FreeRTOS源碼4、添加對應的頭文件路徑5、編譯及錯誤解決5.1 找不到FreeRTOSConfig.h文件5.2
    發表于 08-04 07:01

    下載并整理FreeRTOS源碼

    一、下載并整理FreeRTOS源碼下載壓縮包解壓打開解壓后的文件夾打開FreeRTOS–Source–portable文件夾再打開RVDS文
    發表于 08-24 07:49

    如何移植FreeRTOS最簡源碼?

    如何移植FreeRTOS最簡源碼
    發表于 11-29 08:00

    freertos官方源碼

    源碼包有2個,一個是FreeRTOS 202111.00,一個是FreeRTOS LTS 202012.03。兩個源碼包各有區別:FreeRTOS
    發表于 12-06 16:53

    FreeRTOS源碼介紹

    0. 引言之前freeRTOS用過幾次,但是項目趕工的急,一直沒有認真的去里面看過,最近正好有空,準備到里面看下源碼實現,畢竟核心文件就這么幾個,認真看一下流程,對操作系統的雛形也就有一個認識了
    發表于 02-14 07:42

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

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

    FreeRTOS操作系統源碼V3.2

    FreeRTOS操作系統源碼V3.2
    發表于 03-26 15:24 ?94次下載

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

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

    freertos移植教程_freertos任務調度原理

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

    FreeRTOS系列第8篇---FreeRTOS內存管理

    本文介紹內存管理的基礎知識,詳細源碼分析見《 FreeRTOS高級篇7---FreeRTOS內存管理分析》
    發表于 01-26 17:56 ?17次下載
    <b class='flag-5'>FreeRTOS</b>系列第8篇---<b class='flag-5'>FreeRTOS</b>內存管理

    STM32FreeRTOS學習資料分享

    內含STM32 FreeRTOS源碼 以及詳細的源碼使用教程、以及低功耗設計思路等。
    發表于 10-17 14:17 ?27次下載

    freeRTOS源碼中內存管理的方案

    freeRTOS源碼中提供了五種內存管理的方案,可以說是很方便了。實際需要使用哪一種,可以根據自己項目的需要進行選擇,都是可以的。
    的頭像 發表于 02-10 11:11 ?823次閱讀
    主站蜘蛛池模板: 国产日本特黄特色大片免费视频| 99久久综合| 天天色天天做| 69xxxxxxxxxhd日本| 天天爽爽| 69女poren16| 特黄特色大片免费视频播放 | 久久精品亚瑟全部免费观看| 美女网站色黄| 国产精品va一区二区三区| 在线观看免费视频资源| 欧美奇米| 中文字幕精品一区二区2021年| 天天做天天摸| 6080伦理久久亚洲精品| 亚洲1234区乱码| av手机在线播放| 四虎永久精品视频在线| 俺也来俺也去俺也射| 欧美人与物另类| 色婷婷色综合| 天天天天天操| 狠狠色噜噜狠狠狠狠2021天天| 色香蕉在线视频| 午夜在线免费观看视频| 222aaa天堂| 四虎影院.com| 天天射天天干| 美女三级黄| 国产精品入口免费视频| 免费观看视频| 欧美激欧美啪啪片免费看| 人人插人人| 男男gay污小黄文| 黄 色 毛片免费| 男人女人的免费视频网站| 日本人亚洲人成人| 欧洲国产精品精华液| 午夜两性网| 天天干天天玩天天操| 亚洲人成人77777网站|