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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

新內(nèi)核用戶之間的一個常見誤解是滴答處理程序是內(nèi)核的任務(wù)調(diào)度程序。換句話說,滴答中斷被認(rèn)為是可以使任務(wù)運(yùn)行的唯一機(jī)制?,F(xiàn)實(shí)情況是,在搶占式、基于優(yōu)先級的內(nèi)核中,服務(wù)滴答的代碼是可能導(dǎo)致 CPU 控制權(quán)從一個任務(wù)傳遞到另一個任務(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)的時間量時,滴答中斷就變得必要了。例如,μC/OS-II 和 μC/OS-III 操作系統(tǒng)提供了一種方法來控制超時參數(shù),這些參數(shù)指定非滴答事件的最大等待時間(例如接收 UART 字符),并通過延時函數(shù),如 OSTimeDly()。

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

pYYBAGK7qYGAA-l0AABYAydpSFY132.png

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

審核編輯:郭婷

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

    關(guān)注

    68

    文章

    11279

    瀏覽量

    225021
  • 定時器
    +關(guān)注

    關(guān)注

    23

    文章

    3368

    瀏覽量

    123656
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1314

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    最近看到一個程序,博圖定時器的in腳中寫了一個等式,且是一個等號,不是兩個等號,有點(diǎn)小疑惑,就做了個測試,結(jié)果是博圖確實(shí)有點(diǎn)靈活。
    的頭像 發(fā)表于 09-08 11:46 ?741次閱讀
    博圖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核程序的啟動、編寫和仿真

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

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

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

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

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

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

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

    FANUC程序傳輸軟件的使用

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

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

    在現(xiàn)代化的水處理廠中,PLC(可編程邏輯控制器)廣泛應(yīng)用于自動化控制系統(tǒng),精準(zhǔn)調(diào)控水處理的各個環(huán)節(jié),保障水質(zhì)達(dá)標(biāo)與生產(chǎn)穩(wěn)定。然而,傳統(tǒng)的PLC運(yùn)維管理方式,尤其是程序上下載工作,常面臨諸多棘手難題
    的頭像 發(fā)表于 04-17 16:19 ?496次閱讀
    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)的一個組成部分。Verilog HDL語言允許在程序中使用幾種特殊的命令(它們不是
    的頭像 發(fā)表于 03-27 13:30 ?1438次閱讀
    FPGA Verilog HDL語法之編譯預(yù)<b class='flag-5'>處理</b>