色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

簡述STM32單片機開發中的RTOS

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2021-06-28 14:53 ? 次閱讀

很多STM32單片機初學者都是從裸機開始的,裸機確實也能開發出好的產品。但是,作為一個嵌入式軟件工程師,況且用的并不是51那種低端單片機,如果只會用裸機開發產品,那肯定是不夠的。

要從裸機的思維轉變到RTOS(Real Time Operating System)的思維,其實需要一個過程,而且開始的一段時間會很痛苦。但過一段時間理解了一些內容,能寫一些Demo之后,你會發現其實RTOS也不難。

現在FreeRTOS在CubeMX工具中可以直接配置并使用,相當方便。

為什么需要RTOS

為什么我們需要RTOS?就像最開始學C編程時,老師告訴我們,指針很重要,那時你肯定有一個大的疑問,指針到底有什么好? 心里一直犯嘀咕著:不用指針不一樣把程序編出來了? 現在想想看C語言沒了指針,是不是“寸步難行”呢。 回到正題,我們到底為什么需要RTOS? 一般的簡單的嵌入式設備的編程思路是下面這樣的:

main{ {處理事務1}; {處理事務2}; {處理事務3}; 。。。。。。。 {處理事務N};}

isr_server{ {處理中斷};}

這是最常見的一種思路,對于簡單的系統當然是夠用了,但這樣的系統實時性很差。 比如“事務1”如果是一個用戶輸入的檢測,當用戶輸入時,如果程序正在處理事務1下面的那些事務,那么這次用戶輸入將失效,用戶的體驗是“這個按鍵不靈敏,這個機器很慢”,而我們如果把事務放到中斷里去處理。

雖然改善了實時性但會導致另外一個問題,有可能會引發中斷丟失,這個后果有時候比“慢一點”更加嚴重和惡劣! 又比如事務2是一個只需要1s鐘處理一次的任務,那么顯然事務2會白白浪費CPU的時間。改進思路 看到上面裸機開發的局限了嗎? 這時,我們可能需要改進我們的編程思路,一般我們會嘗試采用“時間片”的方式。這時候編程會變成下面的方式:

main{ {事務1的時間片到了則處理事務1}; {事務2的時間片到了則處理事務2}; 。。。。。。。 {事務N的時間片到了則處理事務N};}

time_isr_server{ {判斷每個事務的時間片是否到來,并進行標記};}

isr_server{ {處理中斷};}

可以看到,這種改進后的思路,使得事務的執行時間得到控制,事務只在自己的時間片到來后,才會去執行。但這種方式仍然不能徹底解決“實時性”的問題,因為某個事務的時間片到來后,也不能立即就執行,必須等到當前事務的時間片用完,并且后面的事務時間片沒到來,才有機會獲得“執行時間”。

這時候我們需要繼續改進思路,為了使得某個事務的時間片到來后能立即執行,我們需要在時鐘中斷里判斷完時間片后,改變程序的返回位置,讓程序不返回到剛剛被打斷的位置,而從最新獲得了時間片的事務處開始執行,這樣就徹底解決了事務的實時問題。

我們在這個思路上,進行改進,我們需要在每次進入時鐘中斷前,保存CPU的當前狀態和當前事務用到的一些數據,然后我們進入時鐘中斷進行時間片處理,若發現有新的更緊急的事務的時間片到來了,則我們改變中斷的返回的地址,并在CPU中恢復這個更緊急的事務的現場,然后返回中斷開始執行這個更緊急的事務。

使用RTOS的好處

上面那段話,對于初學者來說,可能有些不好理解。 事實上,這是因為要實現這個過程是有些復雜和麻煩的,這時候我們就需要找一個操作系統(OS)幫我們做這些事了,如果你能自己用代碼實現這個過程,事實上你就在自己寫操作系統了。

其實從這里也可也看出,操作系統的原理其實并不那么神秘,只是一些細節你很難做好。我們常見的RTOS基本都是這樣的一個操作系統,它能幫你完成這些事情,而且是很優雅的幫你完成! 事實上,RTOS的用處遠不止幫你完成這個“事務時間片的處理”,它還能幫你處理各種超時,進行內存管理,完成任務間的通信等。

有了RTOS,程序的層次也更加清晰,給系統添加功能也更方便,這一切在大型項目中越發的明顯!

編輯:jq

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

    關注

    6035

    文章

    44554

    瀏覽量

    634660
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211587
  • RTOS
    +關注

    關注

    22

    文章

    811

    瀏覽量

    119595
  • c編程
    +關注

    關注

    0

    文章

    94

    瀏覽量

    29359

原文標題:STM32單片機開發中的RTOS

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    單片機Debug工具性能對比 單片機調試常用命令

    單片機(Microcontroller Unit, MCU)調試是嵌入式開發的一個重要環節,它幫助開發者發現和修復代碼的錯誤,優化程序性
    的頭像 發表于 12-19 09:56 ?135次閱讀

    STM32單片機的特點介紹

    和易用的工具,再配合強大的功能,在行業享有盛譽。 STM32單片機的特點主要體現在以下幾個方面: STM32擁有強大的內核。它采用了ARM32位Cortex-M3 CPU,最高工作頻
    的頭像 發表于 09-25 17:19 ?1369次閱讀

    基于STM32單片機的智能加濕器設計

    本文介紹了一種基于STM32單片機的智能加濕器。該加濕器配備了DHT11溫濕度傳感器、水位傳感器和濁度傳感器,數據通過單片機處理并顯示在OLED屏幕上。用戶可通過按鍵模塊設置閾值,并在檢測值與設定值
    的頭像 發表于 09-14 08:04 ?1037次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>的智能加濕器設計

    單片機STM32可以用Python寫嗎?可以的開發板有哪些?

    近年來,隨著嵌入式技術的發展,Python語言逐漸被引入到單片機開發,尤其是一些高性能的單片機上。這一趨勢給開發者帶來了極大的便利,尤其是
    的頭像 發表于 09-05 08:00 ?3203次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>STM32</b>可以用Python寫嗎?可以的<b class='flag-5'>開發</b>板有哪些?

    stm32單片機用什么軟件編程

    STM32單片機是一種廣泛應用于嵌入式系統領域的微控制器,具有高性能、低功耗、豐富的外設接口等特點。要對STM32單片機進行編程,需要選擇合適的軟件工具。 概述
    的頭像 發表于 09-02 10:16 ?1261次閱讀

    stm32單片機引腳介紹及功能

    STM32系列單片機是STMicroelectronics(意法半導體)推出的一款基于ARM Cortex-M內核的32位微控制器。STM32單片機具有高性能、低功耗、豐富的外設和靈活
    的頭像 發表于 09-02 09:38 ?5169次閱讀

    stm32和51單片機的區別是什么

    架構差異: STM32是基于ARM Cortex-M系列內核的32位微控制器,具有更高效的處理能力和更豐富的外設。 51單片機是基于8051內核的8位微控制器,處理能力相對較低,外設也相對有限
    的頭像 發表于 09-02 09:33 ?723次閱讀

    stm32單片機的優勢有哪些?

    STM32單片機還提供豐富的 外設和接口,如通信接口、模擬數字轉換器(ADC)、定時器和PWM控制 等,方便開發人員在設計靈活應用。 3.開發
    發表于 07-29 09:29

    從菜鳥到大牛!嵌入式完整學習路線:STM32單片機-RTOS-Linux

    ?嵌入式系統是許多現代電子設備和智能系統的核心,掌握嵌入式系統,意味著能夠設計和開發更加智能化的產品。本文為所有想進入嵌入式領域的初學者提供一個完整系統學習的路線圖,按照“STM32單片機?R
    的頭像 發表于 07-23 16:11 ?4065次閱讀
    從菜鳥到大牛!嵌入式完整學習路線:<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>-<b class='flag-5'>RTOS</b>-Linux

    基于STM32單片機的智能冰箱控制系統設計

    基于單片機設計的一款智能冰箱控制系統,可以控制冰箱的制冷裝置,可以采集冰箱的異味濃度,超過閩值之后控制紫外燈進行消毒工作單片機采用單片機采用單片機采用
    的頭像 發表于 06-25 09:21 ?1204次閱讀
    基于<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>的智能冰箱控制系統設計

    STM32單片機有哪幾種常見的開發環境?

    STM32單片機是一款廣泛應用于嵌入式系統開發單片機,針對其開發,有以下幾種常見的方式:STM32
    的頭像 發表于 05-18 08:04 ?3032次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>有哪幾種常見的<b class='flag-5'>開發</b>環境?

    stm32單片機學習路線

    、函數、指針等。 2.了解電子電路基礎 對于單片機開發來說,了解電子電路的基礎知識是非常重要的,包括基本的電路原理、電阻、電容、電感等元件的作用和特性。 第二步STM32入門 1.了解
    發表于 05-10 15:34

    STM32單片機最小化系統設計原理

    STM32最小系統,就是能讓STM32單片機能夠正常工作所必須擁有的組成部分的集合,也是STM32單片機正常運行的必要環境。
    發表于 04-23 14:54 ?2806次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>最小化系統設計原理

    【2023電子工程師大會】單片機/RTOS/Linux全棧工程師

    【2023電子工程師大會】單片機/RTOS/Linux全棧工程師修煉之路ppt
    發表于 01-03 16:31 ?44次下載

    STM32單片機的特點和功能是什么

    STM32單片機是一款基于ARM Cortex-M內核的32位閃存微控制器,由STMicroelectronics公司(意法半導體)生產。STM32單片機具有高性能、低功耗、豐富的外設
    的頭像 發表于 01-03 15:33 ?1.2w次閱讀
    主站蜘蛛池模板: 国产精品在线手机视频| 亚洲大片在线观看| 国产亚洲欧美高清在线| 亚洲性夜夜色综合网站| 美女被抽插到哭内射视频免费| freehd另类xxxx喷水| 日日噜噜夜夜爽爽| 国产亚洲精品久久综合阿香蕉 | 美美哒高清在线播放8| 被公疯狂玩弄的漂亮人妻| 无码人妻丰满熟妇区五十路久久| 黄色亚洲片| 99爱在线观看| 婷婷色色狠狠爱| 91麻豆精品国产一级| 啪啪后入内射日韩| 精品视频在线播放| 9797在线看片亚洲精品| ppypp午夜限制不卡影院私人| 全彩acg无翼乌火影忍者| 久久青草费线频观看国产| 久久毛片基地| 青柠视频在线观看高清HD| 思思久久99热只有频精品66| 暖暖免费 高清 日本社区中文| 国产亚洲国际精品福利| 538prom国产在线视频一区| 台湾果冻传媒在线观看| 久久中文电影| 国产日韩欧美综合久久| av色天堂2018在线观看| 亚洲精品国产AV成人毛片| 欧美精品亚洲精品日韩专区一| 国产精品系列在线观看| 1区2区3区4区产品不卡码网站| 挺进老师的紧窄小肉六电影完整版| 久青草国产在视频在线观看| 国产成人免费视频| av女优快播| 中文字幕一区二区三区在线不卡| 无遮挡午夜男女XX00动态|