在线观看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)不再提示

RTOS在STM32中的應(yīng)用

ARM與嵌入式 ? 來(lái)源:ARM與嵌入式 ? 2023-03-06 10:34 ? 次閱讀

文章將介紹實(shí)時(shí)操作系統(tǒng)RTOS,分析為什么在嵌入式系統(tǒng)中使用它。

什么是實(shí)時(shí)操作系統(tǒng)

操作系統(tǒng)的定義:

一個(gè)計(jì)算機(jī)系統(tǒng)可以大致分為四個(gè)部分:硬件(Hardware),操作系統(tǒng)(operating system),應(yīng)用程序(application programs),使用者(user)。

硬件包含了CPU,存儲(chǔ)空間,輸入輸出設(shè)備等為整個(gè)系統(tǒng)提供了基礎(chǔ)的計(jì)算資源。

操作系統(tǒng)是一個(gè)控制程序,作為硬件和應(yīng)用程序之間的橋梁,主要是和硬件打交道,負(fù)責(zé)協(xié)調(diào)分配計(jì)算資源和內(nèi)存資源給不同的應(yīng)用程序使用,并防止系統(tǒng)出現(xiàn)故障。面對(duì)來(lái)自不同應(yīng)用程序的大量且互相競(jìng)爭(zhēng)的資源請(qǐng)求,操作系統(tǒng)通過(guò)一個(gè)調(diào)度算法和內(nèi)存管理算法盡可能把資源公平,有效率地分配給不同的程序。

應(yīng)用程序則通過(guò)調(diào)用操作系統(tǒng)提供的API接口獲得相應(yīng)資源完成指定的任務(wù)。

一個(gè)通用操作系統(tǒng)提供的主要功能有(可見(jiàn)下圖藍(lán)色的部分):

任務(wù)(應(yīng)用程序)的調(diào)度管理

堆棧和內(nèi)存管理

文件管理

隊(duì)列管理

中斷和定時(shí)器管理

資源管理

輸入輸出管理

c710a420-bb5e-11ed-bfe3-dac502259ad0.png

值得注意的是,操作系統(tǒng)自身需要占用一定的計(jì)算資源和內(nèi)存資源,對(duì)于片上資源有限的單片機(jī),可能需要根據(jù)需求剪裁操作系統(tǒng)的大小和功能。

實(shí)時(shí)性的含義

實(shí)時(shí)操作系統(tǒng)(RTOS-Real Time Operating System)中實(shí)時(shí)(Real Time)指的是任務(wù)(Task)或者說(shuō)實(shí)現(xiàn)一個(gè)功能的線程(Thread)必須在給定的時(shí)間(Deadline)內(nèi)完成。

業(yè)界總有種誤解認(rèn)為如果能堆砌更多的處理器核心數(shù)目,更高的處理器頻率,更大的內(nèi)存,更快的總線速度系統(tǒng)就能一定達(dá)到實(shí)時(shí)性的表現(xiàn)。但是強(qiáng)大的計(jì)算能力并不能保證系統(tǒng)的實(shí)時(shí)性。

舉一個(gè)簡(jiǎn)單例子比如汽車(chē)中的安全氣囊,在傳感器檢測(cè)到汽車(chē)發(fā)生碰撞后,安全氣囊需要在30ms內(nèi)完全打開(kāi),不然司機(jī)和乘客的人身安全將受到極大的威脅。即使車(chē)載ECU有很強(qiáng)大的計(jì)算能力,但是如果因?yàn)橐獔?zhí)行其他復(fù)雜計(jì)算任務(wù)或者任務(wù)調(diào)度的問(wèn)題導(dǎo)致對(duì)汽車(chē)狀態(tài)的監(jiān)測(cè)和安全氣囊的響應(yīng)時(shí)間超過(guò)規(guī)定的時(shí)間,實(shí)時(shí)性無(wú)法得到保障導(dǎo)致系統(tǒng)失效和人員傷亡,這將會(huì)是非常嚴(yán)重的系統(tǒng)問(wèn)題。

再舉個(gè)例子比如特斯拉的車(chē)載系統(tǒng):車(chē)機(jī)系統(tǒng)采用的是Linux系統(tǒng),而汽車(chē)的驅(qū)動(dòng)模塊和剎車(chē)模塊使用的是各自獨(dú)自的系統(tǒng)。整個(gè)娛樂(lè)系統(tǒng),觸摸屏以及智能駕駛系統(tǒng),都與汽車(chē)的驅(qū)動(dòng)完全分開(kāi),確保了系統(tǒng)的實(shí)時(shí)性。

一些其它的實(shí)時(shí)任務(wù)包括導(dǎo)彈的制導(dǎo),無(wú)人駕駛等。為了保障這些實(shí)時(shí)任務(wù)能在給定的時(shí)間內(nèi)完成,需要一個(gè)實(shí)時(shí)系統(tǒng)對(duì)這些任務(wù)進(jìn)行調(diào)度和管理。一個(gè)實(shí)時(shí)操作系統(tǒng)能盡力保障每個(gè)任務(wù)能在一個(gè)已知的最大運(yùn)行時(shí)間(Maximum Response Time)內(nèi)完成,包括:

對(duì)中斷和內(nèi)部異常的處理

對(duì)安全相關(guān)的事件的處理

任務(wù)調(diào)度機(jī)制等

當(dāng)然系統(tǒng)的穩(wěn)定性不能僅僅依靠實(shí)時(shí)操作系統(tǒng),安全功能(fail-safe function)相關(guān)的設(shè)計(jì)也是必須要考慮到的。在Netflix的紀(jì)錄片《一落千丈:波音大調(diào)查》中就提到,導(dǎo)致兩起波音最新機(jī)型737 Max的失事事故的直接原因在于當(dāng)飛機(jī)的迎角傳感器發(fā)生故障,機(jī)上裝載的機(jī)動(dòng)特性增強(qiáng)系統(tǒng)(MCAS)誤認(rèn)為飛機(jī)處于失速狀態(tài),無(wú)視飛行員的操縱強(qiáng)制自動(dòng)接管飛機(jī),持續(xù)壓機(jī)頭導(dǎo)致了慘劇的發(fā)生。可見(jiàn)縱使波音的飛控系統(tǒng)非常穩(wěn)定,但如果對(duì)傳感器的數(shù)值判定和使用不當(dāng)并缺少安全性冗余設(shè)計(jì),系統(tǒng)的整體穩(wěn)定性依然無(wú)法得到保障。

c730ecc6-bb5e-11ed-bfe3-dac502259ad0.jpg

操作系統(tǒng)的種類(lèi)

目前比較流行的實(shí)時(shí)操作系統(tǒng)包括黑莓QNX,FreeRTOSuCOSRT-Thread等。在上圖中可以看出,除了Linux和Windows通用操作系統(tǒng)外,接下來(lái)便是FreeRTOS受到廣大開(kāi)發(fā)者的青睞。圖表中也羅列了一些國(guó)產(chǎn)的系統(tǒng)。比如騰訊發(fā)布和開(kāi)源的TencentOS tiny,這是一個(gè)面向物聯(lián)網(wǎng)的實(shí)時(shí)操作系統(tǒng)。華為也推出了鴻蒙LiteOS, 萬(wàn)物互聯(lián)未來(lái)可期。和實(shí)時(shí)操作系統(tǒng)(Real Time Operating System)相對(duì)應(yīng)的是通用操作系統(tǒng)(General Purpose Operating System)。

通用操作系統(tǒng)包括Linux,Windows,MAC等主流的操作系統(tǒng)。這些操作系統(tǒng)大家每天都在使用,功能也十分強(qiáng)大,只是它們有時(shí)為了保障系統(tǒng)的流暢運(yùn)行,就不能保證每個(gè)程序都能實(shí)時(shí)響應(yīng),在易用性和實(shí)時(shí)性之間有所取舍。而且單片機(jī)有限的片上資源也不足以支撐通用操作系統(tǒng)的運(yùn)行。

正所謂術(shù)業(yè)有專(zhuān)攻,在嵌入式領(lǐng)域中,嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)可以更合理、更有效地利用CPU的資源,簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì),縮短系統(tǒng)開(kāi)發(fā)時(shí)間,從而更好地保證系統(tǒng)的實(shí)時(shí)性和可靠性。

FreeRTOS的介紹

FreeRTOS 是一個(gè)迷你的實(shí)時(shí)操作系統(tǒng)內(nèi)核。作為一個(gè)輕量級(jí)的操作系統(tǒng),功能包括:任務(wù)管理、時(shí)間管理、信號(hào)量、消息隊(duì)列、內(nèi)存管理、記錄功能、軟件定時(shí)器、協(xié)程等,可基本滿(mǎn)足較小系統(tǒng)的需要。由于RTOS需占用一定的系統(tǒng)資源(尤其是RAM資源),只有μC/OS-II、embOS、salvo、FreeRTOS等少數(shù)實(shí)時(shí)操作系統(tǒng)能在小RAM單片機(jī)上運(yùn)行。相對(duì)μC/OS-II、embOS等商業(yè)操作系統(tǒng),F(xiàn)reeRTOS操作系統(tǒng)是完全免費(fèi)的操作系統(tǒng),具有源碼公開(kāi)、可移植、可裁減、調(diào)度策略靈活的特點(diǎn),可以方便地移植到各種單片機(jī)上運(yùn)行。

FreeRTOS的官網(wǎng)地址:https://www.freertos.org/

官網(wǎng)上會(huì)有關(guān)于FreeRTOS的最新新聞和技術(shù)文檔,如果大家吃透了FreeRTOS的技術(shù)文檔的話,其實(shí)也就不需要讀文章了哈哈。

FreeRTOS的特性

具有搶占式或者合作式的實(shí)時(shí)操作系統(tǒng)內(nèi)核

功能可裁剪,最小占用10kB左右rom空間,0.5kB ram空間

具有低功耗模式

有互斥鎖、信號(hào)量、消息隊(duì)列等功能

運(yùn)行過(guò)程可追蹤

STM32CubelDE

STM32CubeIDE 是一個(gè)多功能的集成開(kāi)發(fā)工具,集成了TrueSTUDIO和STM32CubeMX,它是STM32Cube軟件生態(tài)系統(tǒng)的一部分。STM32CubeIDE是一個(gè)先進(jìn)的C/C++開(kāi)發(fā)平臺(tái),具有STM32微控制器的IP配置,代碼生成,代碼編譯和調(diào)試功能。

相對(duì)而言對(duì)使用STM32平臺(tái)的童鞋們來(lái)說(shuō)使用FreeRTOS非常方便和強(qiáng)大,因?yàn)樗患傻搅薙TM32的開(kāi)發(fā)環(huán)境當(dāng)中。

c7aa80d6-bb5e-11ed-bfe3-dac502259ad0.jpg

c7ca3764-bb5e-11ed-bfe3-dac502259ad0.jpg

如上圖所示,強(qiáng)烈安利使用STM32CubeIDE進(jìn)行STM32平臺(tái)項(xiàng)目的開(kāi)發(fā)。通過(guò)舉手之間的配置,F(xiàn)reeRTOS就被部署到了項(xiàng)目中去。在項(xiàng)目結(jié)構(gòu)中中間件(Middlewares)你可以看到FreeRTOS這個(gè)文件。同時(shí)FreeRTOS的參數(shù)設(shè)置,添加刪除任務(wù),定時(shí)器,消息隊(duì)列等都可以通過(guò)下面的圖形化界面進(jìn)行配置,之后文章會(huì)詳細(xì)介紹。

c7f181ac-bb5e-11ed-bfe3-dac502259ad0.jpg

標(biāo)準(zhǔn)庫(kù)和HAL庫(kù)

還有一點(diǎn)要說(shuō)明的事情,STM的開(kāi)發(fā)包括寄存器開(kāi)發(fā),標(biāo)準(zhǔn)庫(kù)文件開(kāi)發(fā),還有HAL庫(kù)開(kāi)發(fā)三種開(kāi)發(fā)方式。市面上很多應(yīng)用教程都是針對(duì)標(biāo)準(zhǔn)庫(kù)設(shè)計(jì)的。本系列教程將統(tǒng)一采用HAL(Hardware Abstraction Layer)庫(kù),這是一個(gè)痛苦的選擇,但是因?yàn)?a href="http://m.xsypw.cn/tags/意法半導(dǎo)體/" target="_blank">意法半導(dǎo)體(ST)已經(jīng)停止對(duì)標(biāo)準(zhǔn)庫(kù)文件的維護(hù)和開(kāi)發(fā),為了與時(shí)俱和移植性便利性選擇了HAL庫(kù)。HAL庫(kù)的原理和標(biāo)準(zhǔn)庫(kù)大同小異,所以學(xué)起來(lái)其實(shí)并不會(huì)太累,只是需要跳離舒適區(qū)慢慢適應(yīng)。

審核編輯 :李倩

聲明:本文內(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)注

    31

    文章

    5424

    瀏覽量

    123507
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7103

    瀏覽量

    125034
  • STM32
    +關(guān)注

    關(guān)注

    2290

    文章

    11018

    瀏覽量

    362669
  • RTOS
    +關(guān)注

    關(guān)注

    24

    文章

    844

    瀏覽量

    120817

原文標(biāo)題:RTOS在STM32中的應(yīng)用

文章出處:【微信號(hào):ARM與嵌入式,微信公眾號(hào):ARM與嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32RTOS操作系統(tǒng)

    環(huán)境下,可以通過(guò)建模完成APP代碼生成。該工具包功能豐富涵蓋了APP應(yīng)用建模所需。STM32RTOS操作系統(tǒng)RTOS是一款實(shí)時(shí)操作系統(tǒng),其優(yōu)越性不再贅述,
    發(fā)表于 08-17 07:48

    STM32CubeMX的標(biāo)準(zhǔn)庫(kù)支持RTOS

    STM32CubeMX,什么是線程安全設(shè)置?標(biāo)準(zhǔn)庫(kù)支持RTOS
    發(fā)表于 12-19 06:51

    STM32RTOS的中斷管理

    STM32F103上的 RTOS的中斷管理
    發(fā)表于 12-07 17:51 ?0次下載

    STemWin_Library_V1.1.1 STM324x9IEVAL 的 RTOS 工程顯示不正常的問(wèn)題

    STemWin_Library_V1.1.1STM324x9I-EVAL的RTOS工程顯示不正常問(wèn)題
    發(fā)表于 12-14 16:02 ?0次下載

    開(kāi)源RTOSSTM32單片機(jī)的應(yīng)用

    開(kāi)源RTOSSTM32單片機(jī)的應(yīng)用
    發(fā)表于 09-25 09:50 ?20次下載
    開(kāi)源<b class='flag-5'>RTOS</b><b class='flag-5'>在</b><b class='flag-5'>STM32</b>單片機(jī)<b class='flag-5'>中</b>的應(yīng)用

    簡(jiǎn)述STM32單片機(jī)開(kāi)發(fā)RTOS

    轉(zhuǎn)變到RTOS(Real Time Operating System)的思維,其實(shí)需要一個(gè)過(guò)程,而且開(kāi)始的一段時(shí)間會(huì)很痛苦。但過(guò)一段時(shí)間理解了一些內(nèi)容,能寫(xiě)一些Demo之后,你會(huì)發(fā)現(xiàn)其實(shí)RTOS也不難。 現(xiàn)在FreeRTOSC
    的頭像 發(fā)表于 06-28 14:53 ?3696次閱讀

    STM32移植UCOS RTOS的步驟方法

    STM32移植UCOS RTOS的步驟方法,一步步的,很詳細(xì)
    發(fā)表于 09-23 17:22 ?8次下載

    DB4594_STM32F7 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展

    DB4594_STM32F7 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展
    發(fā)表于 11-23 08:30 ?0次下載
    DB4594_<b class='flag-5'>STM32</b>F7 系列用于 <b class='flag-5'>STM32</b>Cube 的 Azure? <b class='flag-5'>RTOS</b> 軟件擴(kuò)展

    DB4560_STM32F4 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展

    DB4560_STM32F4 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展
    發(fā)表于 11-23 08:30 ?0次下載
    DB4560_<b class='flag-5'>STM32</b>F4 系列用于 <b class='flag-5'>STM32</b>Cube 的 Azure? <b class='flag-5'>RTOS</b> 軟件擴(kuò)展

    DB4595_STM32L5 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展

    DB4595_STM32L5 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展
    發(fā)表于 11-23 08:30 ?0次下載
    DB4595_<b class='flag-5'>STM32</b>L5 系列用于 <b class='flag-5'>STM32</b>Cube 的 Azure? <b class='flag-5'>RTOS</b> 軟件擴(kuò)展

    DB4596_STM32G4 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展

    DB4596_STM32G4 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展
    發(fā)表于 11-23 08:30 ?0次下載
    DB4596_<b class='flag-5'>STM32</b>G4 系列用于 <b class='flag-5'>STM32</b>Cube 的 Azure? <b class='flag-5'>RTOS</b> 軟件擴(kuò)展

    DB4412_STM32H7 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展

    DB4412_STM32H7 系列用于 STM32Cube 的 Azure? RTOS 軟件擴(kuò)展
    發(fā)表于 11-23 08:31 ?1次下載
    DB4412_<b class='flag-5'>STM32</b>H7 系列用于 <b class='flag-5'>STM32</b>Cube 的 Azure? <b class='flag-5'>RTOS</b> 軟件擴(kuò)展

    STM32 RTOS知識(shí)點(diǎn)

    電子發(fā)燒友網(wǎng)站提供《STM32 RTOS知識(shí)點(diǎn).pdf》資料免費(fèi)下載
    發(fā)表于 08-01 14:28 ?4次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>RTOS</b>知識(shí)點(diǎn)

    STM32嵌入式開(kāi)發(fā)RTOS,你用過(guò)哪些?

    STM32嵌入式開(kāi)發(fā)RTOS,你用過(guò)哪些?
    的頭像 發(fā)表于 09-18 16:21 ?2847次閱讀
    <b class='flag-5'>STM32</b>嵌入式開(kāi)發(fā)<b class='flag-5'>中</b>的<b class='flag-5'>RTOS</b>,你用過(guò)哪些?

    具有RTOSSTM32Cube上開(kāi)發(fā)應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《具有RTOSSTM32Cube上開(kāi)發(fā)應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 09-21 11:02 ?2次下載
    <b class='flag-5'>在</b>具有<b class='flag-5'>RTOS</b>的<b class='flag-5'>STM32</b>Cube上開(kāi)發(fā)應(yīng)用
    主站蜘蛛池模板: 久久都是精品 | 午夜片在线 | 亚洲国内精品 | 高清视频在线播放 | 欧洲亚洲国产精华液 | 精品成人 | 欧美干色 | 色伊人久久 | 天天躁夜夜躁狠狠躁躁88 | 人人澡人人草 | 亚洲韩国欧美一区二区三区 | 天天插天天插天天插 | 玖玖国产在线观看 | 日韩毛片在线 | 91av成人| 七月色婷婷 | 一区国产传媒国产精品 | 加勒比精品久久一区二区三区 | 国产毛片久久久久久国产毛片 | 伊在线视频 | 成年1314在线观看 | 天天摸天天碰天天碰 | 四虎永久免费在线 | 四虎影院www| 天天摸天天草 | 狠狠色噜噜狠狠狠狠黑人 | 手机看片1024手机在线观看 | 色综合久久久久久久久五月性色 | 一级特黄aaa大片在线观看 | 在线观看日本免费视频大片一区 | 国产一级特黄高清在线大片 | 黄色免费网站在线观看 | 91亚色视频 | 成人午夜网址 | 亚洲 欧美 丝袜 制服 在线 | 男女无遮挡在线完整视频 | 日产精品卡二卡三卡四卡乱码视频 | 日本黄视频网站 | 午夜视频在线观看免费观看在线观看 | www.亚洲天堂 | 黄色短视频免费看 |