91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

滴答處理程序不是調(diào)度程序

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Matt Gordon ? 2022-06-29 09:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實(shí)時(shí)內(nèi)核通常使用定時(shí)器或類似的周期性中斷源來為多任務(wù)應(yīng)用程序?qū)崿F(xiàn)延遲和其他有用的服務(wù)。盡管利用此類服務(wù)所需的代碼通常只涉及對(duì)內(nèi)核 API 函數(shù)的調(diào)用,但似乎周期性中斷(或俗稱的滴答聲)已成為混淆甚至爭論的主要來源。內(nèi)核用戶。

新內(nèi)核用戶之間的一個(gè)常見誤解是滴答處理程序是內(nèi)核的任務(wù)調(diào)度程序。換句話說,滴答中斷被認(rèn)為是可以使任務(wù)運(yùn)行的唯一機(jī)制。現(xiàn)實(shí)情況是,在搶占式、基于優(yōu)先級(jí)的內(nèi)核中,服務(wù)滴答的代碼是可能導(dǎo)致 CPU 控制權(quán)從一個(gè)任務(wù)傳遞到另一個(gè)任務(wù)的眾多代碼之一。在此類內(nèi)核中,任何中斷通常都可能導(dǎo)致新任務(wù)運(yùn)行,如圖 1 所示,涉及 UART 中斷。此外,任務(wù)本身可能有多種方式來放棄 CPU 并進(jìn)入掛起或等待狀態(tài)。

pYYBAGK7qXuAP5XoAABWXfdoK0E756.png

當(dāng)任務(wù)需要能夠控制它在等待狀態(tài)中花費(fèi)的時(shí)間量時(shí),滴答中斷就變得必要了。例如,μC/OS-II 和 μC/OS-III 操作系統(tǒng)提供了一種方法來控制超時(shí)參數(shù),這些參數(shù)指定非滴答事件的最大等待時(shí)間(例如接收 UART 字符),并通過延時(shí)函數(shù),如 OSTimeDly()。

圖 2 基于 μC/OS-II,突出顯示滴答中斷在實(shí)現(xiàn) OSTimeDly() 中的作用。在圖的左側(cè),一個(gè)相對(duì)高優(yōu)先級(jí)的任務(wù)調(diào)用 OSTimeDly() 來產(chǎn)生一個(gè) 5 個(gè)滴答的延遲,導(dǎo)致內(nèi)核在與該任務(wù)關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)中初始化一個(gè)延遲字段,并將該任務(wù)移出允許另一個(gè)任務(wù)運(yùn)行的就緒狀態(tài)。延遲字段被初始化為值 5,并且在調(diào)用 OSTimeDly() 之后的每個(gè)滴答中斷中,該字段遞減。在調(diào)用后的第五次中斷時(shí),該字段達(dá)到 0,并且內(nèi)核的滴答處理程序(在 μC/OS-II 中是 ISR 的一部分,但在 μC/OS-III 中有自己的任務(wù))使高優(yōu)先級(jí)任務(wù)準(zhǔn)備好再次運(yùn)行。然后,該任務(wù)將獲得 CPU 控制權(quán),因?yàn)樗膬?yōu)先級(jí)超過了在第五個(gè)滴答發(fā)生時(shí)正在運(yùn)行的任務(wù)的優(yōu)先級(jí)。

pYYBAGK7qYGAA-l0AABYAydpSFY132.png

從技術(shù)上講,可以編寫一個(gè)沒有超時(shí)和延遲函數(shù)(如 OSTimeDly())的多任務(wù)應(yīng)用程序。然而,大多數(shù)多任務(wù)系統(tǒng)至少包含一項(xiàng)可以從基于滴答的服務(wù)中受益的任務(wù)。在接下來的文章中,我將考慮兩個(gè)重要的滴答參數(shù)——頻率和優(yōu)先級(jí)——對(duì)此類系統(tǒng)的影響。

審核編輯:郭婷

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

    關(guān)注

    68

    文章

    11285

    瀏覽量

    225122
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3368

    瀏覽量

    123744
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1315

    瀏覽量

    106683
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    飛凌嵌入式ElfBoard-系統(tǒng)信息與資源之獲取程序的執(zhí)行時(shí)間

    clock用于獲取程序運(yùn)行的 CPU 時(shí)間。它返回自程序啟動(dòng)以來的 CPU 時(shí)鐘滴答數(shù),通常用于計(jì)算程序的執(zhí)行時(shí)間。1.頭文件#include 2.函數(shù)原型clock_t clock(
    發(fā)表于 01-22 08:57

    經(jīng)典 PLC 程序(6) - 信號(hào)防抖

    在PLC程序中,信號(hào)防抖是一個(gè)非常重要的概念,用于處理由于機(jī)械開關(guān)觸點(diǎn)抖動(dòng)而產(chǎn)生的虛假信號(hào)。本文介紹一下用梯形圖、AWBlock和ST語言三種編程,實(shí)現(xiàn)信號(hào)防抖的控制邏輯。信號(hào)防抖在PLC程序
    的頭像 發(fā)表于 01-20 11:47 ?403次閱讀
    經(jīng)典 PLC <b class='flag-5'>程序</b>(6) - 信號(hào)防抖

    嵌入式基礎(chǔ)知識(shí)-系統(tǒng)調(diào)度

    調(diào)度,有許多相似之處。 1、進(jìn)程的三種狀態(tài) 執(zhí)行態(tài)(Run):進(jìn)程占用CPU資源,對(duì)于單核處理器,任一時(shí)刻只能有一個(gè)進(jìn)行處于執(zhí)行態(tài)。 就緒態(tài)(Ready):進(jìn)程本身具備運(yùn)行條件,但由于處理機(jī)的個(gè)數(shù)少于
    發(fā)表于 12-16 08:15

    C++程序異常的處理機(jī)制

    1、什么是異常處理? 有經(jīng)驗(yàn)的朋友應(yīng)該知道,在正常的C和C++編程過程中難免會(huì)碰到程序不按照原本設(shè)計(jì)運(yùn)行的情況。 最常見的有除法分母為零,數(shù)組越界,內(nèi)存分配失效、打開相應(yīng)文件失敗等等。 一個(gè)程序
    發(fā)表于 12-02 07:12

    使用三菱FX5U PLC的經(jīng)典小程序案例

    實(shí)際的PLC程序往往是某些典型小程序的擴(kuò)展與疊加,因此掌握一些典型小程序對(duì)大型復(fù)雜程序的編寫非常有利。 鑒于此,本文將給出一些典型小程序,供
    的頭像 發(fā)表于 11-07 13:57 ?5731次閱讀
    使用三菱FX5U PLC的經(jīng)典小<b class='flag-5'>程序</b>案例

    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)28: TLP 事務(wù)處理程序的執(zhí)行流程

    最小橋設(shè)備模型的每個(gè)端口的輸入端對(duì)接一個(gè) TLP事務(wù)處理程序, 該程序負(fù)責(zé)將接收到的 TLP 事務(wù)進(jìn)行解析和路由轉(zhuǎn)發(fā)。
    的頭像 發(fā)表于 09-23 09:13 ?1074次閱讀
    NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)28: TLP 事務(wù)<b class='flag-5'>處理</b><b class='flag-5'>程序</b>的執(zhí)行流程

    博圖SCL程序中的隱式轉(zhuǎn)換

    最近看到一個(gè)程序,博圖定時(shí)器的in腳中寫了一個(gè)等式,且是一個(gè)等號(hào),不是兩個(gè)等號(hào),有點(diǎn)小疑惑,就做了個(gè)測試,結(jié)果是博圖確實(shí)有點(diǎn)靈活。
    的頭像 發(fā)表于 09-08 11:46 ?760次閱讀
    博圖SCL<b class='flag-5'>程序</b>中的隱式轉(zhuǎn)換

    STM32程序的燒錄方式

    電子發(fā)燒友網(wǎng)站提供《STM32程序的燒錄方式.pdf》資料免費(fèi)下載
    發(fā)表于 08-28 16:03 ?8次下載

    【老法師】多核異構(gòu)處理器中M核程序的啟動(dòng)、編寫和仿真

    有很多研究單片機(jī)的小伙伴在面對(duì)多核異構(gòu)處理器時(shí),可能會(huì)對(duì)多核的啟動(dòng)流程感到困惑——因?yàn)椴皇煜CC編程和GDB調(diào)試,所以也無法確定多核異構(gòu)處理器的程序是否能像單片機(jī)那樣方便地編寫和仿真。本篇
    的頭像 發(fā)表于 08-13 09:05 ?4008次閱讀
    【老法師】多核異構(gòu)<b class='flag-5'>處理</b>器中M核<b class='flag-5'>程序</b>的啟動(dòng)、編寫和仿真

    zephyr設(shè)備驅(qū)動(dòng)程序模型

    ? ? 1:Zephyr 內(nèi)核支持多種設(shè)備驅(qū)動(dòng)程序。驅(qū)動(dòng)程序是否可用取決于board 和驅(qū)動(dòng)程序。 Zephyr 設(shè)備模型為配置作為系統(tǒng)一部分的驅(qū)動(dòng)程序提供了一致的設(shè)備模型。設(shè)備型號(hào)負(fù)
    的頭像 發(fā)表于 07-29 10:34 ?709次閱讀
    zephyr設(shè)備驅(qū)動(dòng)<b class='flag-5'>程序</b>模型

    單片機(jī)怎么燒程序

    單片機(jī)燒程序是將編寫好的程序代碼寫入單片機(jī)內(nèi)部存儲(chǔ)單元,讓單片機(jī)按照預(yù)設(shè)邏輯工作的過程,是單片機(jī)應(yīng)用開發(fā)中不可或缺的環(huán)節(jié)。無論是簡單的燈光控制程序,還是復(fù)雜的工業(yè)控制算法,都需要通過燒程序
    的頭像 發(fā)表于 07-23 11:47 ?1355次閱讀

    利用PLC調(diào)用ABB機(jī)器人程序號(hào)教程

    PP TO MAIN 程序是用來使機(jī)器人里的程序回到 MAIN 主程序的。
    的頭像 發(fā)表于 07-04 15:34 ?5754次閱讀
    利用PLC調(diào)用ABB機(jī)器人<b class='flag-5'>程序</b>號(hào)教程

    FANUC程序傳輸軟件的使用

    FANUC程序傳輸軟件的使用
    發(fā)表于 06-04 16:23 ?0次下載

    PLC水處理程序遠(yuǎn)程上下載如何實(shí)現(xiàn)?有什么優(yōu)勢?

    在現(xiàn)代化的水處理廠中,PLC(可編程邏輯控制器)廣泛應(yīng)用于自動(dòng)化控制系統(tǒng),精準(zhǔn)調(diào)控水處理的各個(gè)環(huán)節(jié),保障水質(zhì)達(dá)標(biāo)與生產(chǎn)穩(wěn)定。然而,傳統(tǒng)的PLC運(yùn)維管理方式,尤其是程序上下載工作,常面臨諸多棘手難題
    的頭像 發(fā)表于 04-17 16:19 ?503次閱讀
    PLC水<b class='flag-5'>處理</b><b class='flag-5'>程序</b>遠(yuǎn)程上下載如何實(shí)現(xiàn)?有什么優(yōu)勢?

    FPGA Verilog HDL語法之編譯預(yù)處理

    Verilog HDL語言和C語言一樣也提供了編譯預(yù)處理的功能?!熬幾g預(yù)處理”是Verilog HDL編譯系統(tǒng)的一個(gè)組成部分。Verilog HDL語言允許在程序中使用幾種特殊的命令(它們不是
    的頭像 發(fā)表于 03-27 13:30 ?1456次閱讀
    FPGA Verilog HDL語法之編譯預(yù)<b class='flag-5'>處理</b>