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

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

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

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

如何將FreeRTOS移植到STM32單片機(jī)上

汽車電子技術(shù) ? 來(lái)源:物聯(lián)網(wǎng)知識(shí) ? 作者: 跋扈洋 ? 2023-01-20 17:36 ? 次閱讀

引言

本文詳細(xì)介紹如何移植FreeRTOSSTM32單片機(jī)上。移植操作系統(tǒng)嵌入式開(kāi)發(fā)的入門基礎(chǔ),單片機(jī)和嵌入式在物理上其實(shí)是一摸一樣的,區(qū)別就是軟件上嵌入式跑了操作系統(tǒng)而單片機(jī)沒(méi)有。本文選用市場(chǎng)上最常見(jiàn)的STM32和FreeRTOS,為大家介紹如何移植操作系統(tǒng)到MCU上。

介紹

什么是 RTOS

實(shí)時(shí)操作系統(tǒng)(Real-time operating system, RTOS),它會(huì)按照排序運(yùn)行、管理系統(tǒng)資源,并為開(kāi)發(fā)應(yīng)用程序提供一致的基礎(chǔ)。

實(shí)時(shí)操作系統(tǒng)與一般的操作系統(tǒng)相比,最大的特色就是“實(shí)時(shí)性”,如果有一個(gè)任務(wù)需要執(zhí)行,實(shí)時(shí)操作系統(tǒng)會(huì)馬上(在較短時(shí)間內(nèi))執(zhí)行該任務(wù),不會(huì)有較長(zhǎng)的延時(shí)。這種特性保證了各個(gè)任務(wù)的及時(shí)執(zhí)行。

只有“實(shí)時(shí)性”才是RTOS的最大特征,其它的都不算是。

實(shí)時(shí)運(yùn)算是計(jì)算機(jī)科學(xué)中對(duì)受到“實(shí)時(shí)約束”的計(jì)算機(jī)硬件和計(jì)算機(jī)軟件系統(tǒng)的研究,實(shí)時(shí)約束像是從事件發(fā)生到系統(tǒng)回應(yīng)之間的最長(zhǎng)時(shí)間限制。實(shí)時(shí)程序必須保證在嚴(yán)格的時(shí)間限制內(nèi)響應(yīng)。

實(shí)時(shí)操作系統(tǒng)中都要包含一個(gè)實(shí)時(shí)任務(wù)調(diào)度器,這個(gè)任務(wù)調(diào)度器與其它操作系統(tǒng)的最大不同是強(qiáng)調(diào):嚴(yán)格按照優(yōu)先級(jí)來(lái)分配CPU時(shí)間,并且時(shí)間片輪轉(zhuǎn)不是實(shí)時(shí)調(diào)度器的一個(gè)必選項(xiàng)。

提出實(shí)時(shí)操作系統(tǒng)的概念,可以至少解決兩個(gè)問(wèn)題:一個(gè)是早期的CPU任務(wù)切換的開(kāi)銷太大,實(shí)時(shí)調(diào)度器可以避免任務(wù)頻繁切換導(dǎo)致CPU時(shí)間的浪費(fèi);另一個(gè)是在一些特殊的應(yīng)用場(chǎng)景中,必須要保證重要的任務(wù)優(yōu)先被執(zhí)行。

在這樣的背景下,實(shí)時(shí)操作系統(tǒng)就被設(shè)計(jì)出來(lái)了,典型的實(shí)時(shí)操作系統(tǒng)有FreeRTOS、VxWorksRT-ThreaduCOS,QNX,WinCE等。

由于設(shè)備性能的發(fā)展,原來(lái)很多實(shí)時(shí)性要求高的場(chǎng)景,已經(jīng)切換到普通的操作系統(tǒng)了。Linux在嵌入式設(shè)備上的推廣,使用實(shí)時(shí)操作系統(tǒng)的很多設(shè)備已經(jīng)改用Linux了,因?yàn)橛布阅艿奶嵘龝?huì)讓系統(tǒng)延遲降低到一個(gè)用戶可以接受的程度。

但在某些特定的場(chǎng)景下,比如工業(yè)自動(dòng)化機(jī)器人、航空航天、軍工領(lǐng)域等,仍然對(duì)實(shí)時(shí)操作系統(tǒng)有需求,并且應(yīng)該會(huì)長(zhǎng)期存在。

為什么嵌入式設(shè)備往往使用RTOS?

由于嵌入式設(shè)備對(duì)資源,功耗很敏感,所以RTOS也具備可裁剪、低功耗、資源占用率低等特點(diǎn)。相對(duì)于通用的分時(shí)操作系統(tǒng),如linux,Windows而言,RTOS更強(qiáng)調(diào)實(shí)時(shí)。

RTOS保證了在規(guī)定時(shí)間內(nèi)能夠完成某個(gè)任務(wù),如果不能在指定時(shí)間完成會(huì)造成重大事故,所以必須某些場(chǎng)景必須使用RTOS。

FreeRTOS

FreeRTOS應(yīng)該算是目前最流行的嵌入式操作系統(tǒng)之一,具體原因當(dāng)然是因?yàn)殚_(kāi)源,畢竟產(chǎn)品還是要控制成本的。FreeRTOS 十分的小巧,可以在資源有限的微控制器中運(yùn)行,我們學(xué)習(xí)中最常用的STM32F103C8T6跑很多RTOS都可能因?yàn)閮?nèi)存受限,但FreeRTOS就不會(huì),完全能滿足我們?nèi)粘5拈_(kāi)發(fā)需求。當(dāng)然了,F(xiàn)reeRTOS 不僅局限于在微控制器中使用。但從文件數(shù)量上來(lái)看 FreeRTOS 要比UCOSII 和 UCOSIII 小的多。

FreeRTOS最開(kāi)始網(wǎng)站是全英的,我剛?cè)腴T的時(shí)候因?yàn)橛⒄Z(yǔ)不好,飽受折磨。現(xiàn)在網(wǎng)站已經(jīng)能切換中文了,算是方便了后面學(xué)習(xí)的人。

具體步驟

  1. 首先準(zhǔn)備一個(gè)基礎(chǔ)項(xiàng)目,我們的點(diǎn)燈或者串口收發(fā)這種簡(jiǎn)單的程序就行,甚至連點(diǎn)燈都沒(méi)有的項(xiàng)目也可以。畢竟操作系統(tǒng)也要依托于一個(gè)MCU的項(xiàng)目。
  2. 獲取FreeRTOS系統(tǒng)源碼,兩種方法。
  • 公眾號(hào):物聯(lián)網(wǎng)知識(shí),后臺(tái)回復(fù):FreeRTOS源碼

  • CSDN資源平臺(tái):

    https://download.csdn.net/download/qq_44629109/87354102

  • 官網(wǎng)下載:https://www.freertos.org/zh-cn-cmn-s/

微信截圖_20230105161930.png

微信截圖_20230105161930.png

  1. 解壓我們下載的文件,我們進(jìn)入FreeRTOSv202112.00,之后進(jìn)入FreeRTOS,再后進(jìn)入吧Source文件。一會(huì)我們需要用到的文件主要就在這里。

微信截圖_20230105161930.png

微信截圖_20230105161930.png

  1. 我們?cè)谖覀儨?zhǔn)備的項(xiàng)目中創(chuàng)建一個(gè)文件夾FreeRTOS,將上面一步的文件中的內(nèi)容復(fù)制到剛創(chuàng)建的FreeRTOS中。

微信截圖_20230105161930.png

  1. 進(jìn)行剪裁,portable 文件夾,我們只需要留下 keil、MemMang 和 RVDS這三個(gè)文件夾,其他的都可以刪除掉。
  2. 向工程分組中添加文件,創(chuàng)建兩個(gè)組,分別是FreeRTOS_CORE和FreeRTOS_Portable。

微信截圖_20230105161930.png

將FreeRTOS相關(guān)的文件添加進(jìn)來(lái)。

微信截圖_20230105161930.png

port.c 是 RVDS 文件夾下的 ARM_CM3 中的文件,因?yàn)?STM32F103 是 Cortex-M3 內(nèi)核的,因此要選擇 ARM_CM3中的 port.c 文件。heap_4.c 是 MemMang 文件夾中的。

  1. 添加頭文件,我們將FreeRTOS相關(guān)的頭文件添加進(jìn)項(xiàng)目。

微信截圖_20230105161930.png

  1. 頭文件路徑添加完成以后編譯一下,看看有沒(méi)有什么錯(cuò)誤,結(jié)果會(huì)發(fā)現(xiàn)提示打不開(kāi)“FreeRTOSConfig.h”這個(gè)文件,因?yàn)槲覀冞€沒(méi)添加這個(gè)文件。這個(gè)文件最好是自己編寫(xiě),當(dāng)然官方也給我提供了一些例程。打開(kāi)我們最開(kāi)始下載的FreeRTOS源碼,里面的Deme文件夾中有一個(gè)CORTEX_STM32F103_Keil文件夾,我們可以看到,里面是有這個(gè).h文件的。

微信截圖_20230105161930.png

我們把這個(gè)文件復(fù)制粘貼放進(jìn)我們的項(xiàng)目中存放頭文件的文件夾即可。FreeRTOSConfig.h是剪裁RTOS的關(guān)鍵,后面的學(xué)習(xí)中,還會(huì)涉及到,讀者也可以在網(wǎng)上查一查相關(guān)內(nèi)容。

  1. 我們編譯一下我們的項(xiàng)目,看看是否出現(xiàn)錯(cuò)誤,如果出現(xiàn)錯(cuò)誤就按照錯(cuò)誤改正就好了,一般情況下不會(huì)出現(xiàn)什么錯(cuò)誤,如果有錯(cuò),絕大多數(shù)都是因?yàn)镕reeRTOSConfig.h的配置問(wèn)題,因?yàn)閱?wèn)題種類多樣,這里就不一一列舉,大家可以在網(wǎng)上搜索,我也會(huì)總結(jié)移植常遇到的問(wèn)題和解決方法,后面再寫(xiě)一篇推文給大家分享。
  2. 移植成功,大家可以動(dòng)手試試了。

微信截圖_20230105161930.png

總結(jié)

當(dāng)裸機(jī)開(kāi)發(fā)的實(shí)時(shí)性差,資源浪費(fèi)和編寫(xiě)困難等問(wèn)題逐漸暴露出來(lái)時(shí),RTOS就是我們首選的解決方式。我們也就從單片機(jī)工程師轉(zhuǎn)變成嵌入式工程師了。本文詳細(xì)介紹了如何移植FreeRTOS到STM32上,這是嵌入式入門的關(guān)鍵,后面會(huì)繼續(xù)分享更多嵌入式相關(guān)內(nèi)容。

聲明:本文內(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)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635235
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19123

    瀏覽量

    305151
  • FreeRTOS
    +關(guān)注

    關(guān)注

    12

    文章

    484

    瀏覽量

    62172
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何將freemodbus移植stm32平臺(tái)

    modbus是一個(gè)非常好的串口協(xié)議(當(dāng)然也能用在網(wǎng)口上),它簡(jiǎn)潔、規(guī)范、強(qiáng)大。可以滿足大部分的工業(yè)、嵌入式需求。這里詳細(xì)說(shuō)下如何將freemodbus移植stm32平臺(tái)。我之前下載的
    發(fā)表于 08-16 06:59

    FreeRTOS系統(tǒng)在STM32系列單片機(jī)移植

    STM32F103C8T6及其系列的FreeRTOS移植本文所提到的所有軟件、驅(qū)動(dòng)、代碼百度參考自正點(diǎn)原子手冊(cè)。1.前言?嵌入式系統(tǒng)是實(shí)時(shí)性強(qiáng)、宏觀上多線程運(yùn)行、且在單片機(jī)上運(yùn)行的操作
    發(fā)表于 08-17 09:15

    FreeRTOS移植STM32F103中的步驟

    目錄一、FreeRTOS的介紹二、FreeRTOS移植STM32F103中的步驟1.前期準(zhǔn)備
    發(fā)表于 08-24 07:26

    FreeRTOS系統(tǒng)在STM32單片機(jī)上是怎樣去移植

    FreeRTOS的主要特性有哪些呢?FreeRTOS系統(tǒng)在STM32單片機(jī)上是怎樣去移植的?
    發(fā)表于 11-18 06:54

    STM32不同型號(hào)單片機(jī)keil工程移植方法

    STM32系列單片機(jī)如果庫(kù)函數(shù)開(kāi)發(fā)的話,那么不同型號(hào)單片機(jī)的工程是可以直接移植的。這樣的話如果項(xiàng)目中更換了芯片,工程就可以直接移植過(guò)去,不用
    發(fā)表于 11-29 06:41

    如何將FreeRTOS實(shí)時(shí)操作系統(tǒng)移植STM32單片機(jī)

    前言本文主要講解如何將FreeRTOS實(shí)時(shí)操作系統(tǒng)移植STM32單片機(jī)中,在本文之前已經(jīng)基于M
    發(fā)表于 01-11 08:15

    如何將FreeRTOS移植stm32上呢

    目錄一、FreeRTOS介紹1、初識(shí)FreeRTOS,什么是 FreeRTOS2、FreeRTOS的特點(diǎn)二、FreeRTOS
    發(fā)表于 02-10 06:01

    如何在STM32單片機(jī)上移植FreeRTOS

    首先在網(wǎng)上看到大部分移植FreeRTOS 都是選擇修改他的啟動(dòng)文件,我個(gè)人感覺(jué)這樣不是很好,畢竟是匯編,當(dāng)你采用不同的芯片型號(hào)時(shí),又要修改不同的xx.S文件,所以我選擇修改FreeRTOSconfig.h文件。
    發(fā)表于 12-28 15:31 ?5391次閱讀
    如何在<b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)上</b><b class='flag-5'>移植</b><b class='flag-5'>FreeRTOS</b>

    如何將FreeRTOS移植STM32F103上詳細(xì)步驟和注意事項(xiàng)詳細(xì)說(shuō)明

    由于之前聽(tīng)過(guò)太多人抱怨移植FreeRTOSSTM32有各種各樣的問(wèn)題,小燈經(jīng)過(guò)一年多對(duì)FreeRTOS的研究并在公司產(chǎn)品中應(yīng)用, 多少有些
    發(fā)表于 03-09 16:59 ?20次下載
    <b class='flag-5'>如何將</b><b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>STM32</b>F103上詳細(xì)步驟和注意事項(xiàng)詳細(xì)說(shuō)明

    STM32不同型號(hào)單片機(jī)keil工程移植說(shuō)明

    STM32系列單片機(jī)如果庫(kù)函數(shù)開(kāi)發(fā)的話,那么不同型號(hào)單片機(jī)的工程是可以直接移植的。這樣的話如果項(xiàng)目中更換了芯片,工程就可以直接移植過(guò)去,不用
    發(fā)表于 11-19 11:36 ?14次下載
    <b class='flag-5'>STM32</b>不同型號(hào)<b class='flag-5'>單片機(jī)</b>keil工程<b class='flag-5'>移植</b>說(shuō)明

    轉(zhuǎn)發(fā):stm32 移植 freertos

    轉(zhuǎn)發(fā):stm32 移植 freertos
    發(fā)表于 11-20 12:36 ?14次下載
    轉(zhuǎn)發(fā):<b class='flag-5'>stm32</b> <b class='flag-5'>移植</b> <b class='flag-5'>freertos</b>

    從01學(xué)習(xí)FreeRTOSFreeRTOS 內(nèi)核應(yīng)用開(kāi)發(fā):(一)移植FreeRTOSSTM32第一部分

    從01學(xué)習(xí)FreeRTOSFreeRTOS 內(nèi)核應(yīng)用開(kāi)發(fā):(一)移植FreeRTOS
    發(fā)表于 12-04 12:51 ?22次下載
    從0<b class='flag-5'>到</b>1學(xué)習(xí)<b class='flag-5'>FreeRTOS</b>:<b class='flag-5'>FreeRTOS</b> 內(nèi)核應(yīng)用開(kāi)發(fā):(一)<b class='flag-5'>移植</b><b class='flag-5'>FreeRTOS</b><b class='flag-5'>到</b><b class='flag-5'>STM32</b>第一部分

    FreeRTOS移植—基于STM32

    FreeRTOS移植—基于STM32
    發(fā)表于 12-04 12:51 ?18次下載
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>—基于<b class='flag-5'>STM32</b>

    STM32F103單片機(jī)上移植FreeRTOS

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

    如何將FreeMODBUS協(xié)議棧移植AT32F43x單片機(jī)方法

    電子發(fā)燒友網(wǎng)站提供《如何將FreeMODBUS協(xié)議棧移植AT32F43x單片機(jī)方法.pdf》資料免費(fèi)下載
    發(fā)表于 12-18 11:15 ?0次下載
    <b class='flag-5'>如何將</b>FreeMODBUS協(xié)議棧<b class='flag-5'>移植</b><b class='flag-5'>到</b>AT32F43x<b class='flag-5'>單片機(jī)</b>方法
    主站蜘蛛池模板: 亚洲 欧洲 另类 综合 自拍| 色男人的天堂| 任你操免费视频| 爱爱的免费视频| 2021国产精品午夜久久| 亚洲男同tv| 国产色视频在线| 国产欧美一区二区日本加勒比| 精品福利| 高h细节肉爽文男男| 久青草国产手机在线视频| 天天舔天天干| 亚洲一区免费视频| 日本免费观看网站| 天堂网在线新版www| 国产精品高清久久久久久久| 欧美成人福利| 免费又爽又黄1000禁片| 在线电影天堂| 国产精品9999久久久久仙踪林| 午夜看看| 欧美视频三区| 激情六月网| www.射| 四虎永久在线免费观看| 亚洲午夜视频| 免费黄视频网站| 国产欧美日韩综合精品一区二区| 又粗又长又大又黄的日本视频 | 久久久久久久国产精品影院| 国产黄色一级网站| 天天噜噜噜| 天天拍夜夜添久久精品免费 | 日本三人交xxx69视频| 色秀视频免费网站在线观看| 午夜视频在线观看网站| 男人j进女人j的视频一进一出| 四虎院影永久在线观看| 午夜福利毛片| 伊人久久大香线蕉综合7| 12306影院午夜入口|