精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

滴答處理程序不是調度程序

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Matt Gordon ? 2022-06-29 09:19 ? 次閱讀

實時內核通常使用定時器或類似的周期性中斷源來為多任務應用程序實現延遲和其他有用的服務。盡管利用此類服務所需的代碼通常只涉及對內核 API 函數的調用,但似乎周期性中斷(或俗稱的滴答聲)已成為混淆甚至爭論的主要來源。內核用戶。

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

pYYBAGK7qXuAP5XoAABWXfdoK0E756.png

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

圖 2 基于 μC/OS-II,突出顯示滴答中斷在實現 OSTimeDly() 中的作用。在圖的左側,一個相對高優先級的任務調用 OSTimeDly() 來產生一個 5 個滴答的延遲,導致內核在與該任務關聯的數據結構中初始化一個延遲字段,并將該任務移出允許另一個任務運行的就緒狀態。延遲字段被初始化為值 5,并且在調用 OSTimeDly() 之后的每個滴答中斷中,該字段遞減。在調用后的第五次中斷時,該字段達到 0,并且內核的滴答處理程序(在 μC/OS-II 中是 ISR 的一部分,但在 μC/OS-III 中有自己的任務)使高優先級任務準備好再次運行。然后,該任務將獲得 CPU 控制權,因為它的優先級超過了在第五個滴答發生時正在運行的任務的優先級。

pYYBAGK7qYGAA-l0AABYAydpSFY132.png

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

審核編輯:郭婷

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

    關注

    68

    文章

    10829

    瀏覽量

    211196
  • 定時器
    +關注

    關注

    23

    文章

    3241

    瀏覽量

    114519
  • uart
    +關注

    關注

    22

    文章

    1228

    瀏覽量

    101200
收藏 人收藏

    評論

    相關推薦

    Linux驅動程序程序員指南

    電子發燒友網站提供《Linux驅動程序程序員指南.pdf》資料免費下載
    發表于 11-22 15:53 ?0次下載
    Linux驅動<b class='flag-5'>程序</b><b class='flag-5'>程序</b>員指南

    gawk程序基礎教程

    gawk程序是Unix中原始awk程序的GNU版本。gawk程序讓流編輯器邁上了一個新的臺階,它提供了一種編程語言而不只是編輯器命令。
    的頭像 發表于 10-29 16:42 ?126次閱讀

    使用CSL來補充操作系統調度程序處理級聯中斷

    電子發燒友網站提供《使用CSL來補充操作系統調度程序處理級聯中斷.pdf》資料免費下載
    發表于 10-16 10:12 ?0次下載
    使用CSL來補充操作系統<b class='flag-5'>調度</b><b class='flag-5'>程序</b><b class='flag-5'>處理</b>級聯中斷

    使用IO-link主幀處理程序實現靈活的時序配置

    電子發燒友網站提供《使用IO-link主幀處理程序實現靈活的時序配置.pdf》資料免費下載
    發表于 09-19 11:28 ?0次下載
    使用IO-link主幀<b class='flag-5'>處理</b><b class='flag-5'>程序</b>實現靈活的時序配置

    Linux設備驅動程序分類有哪些

    驅動程序可以根據硬件類型進行分類,主要包括以下幾種: 1.1 存儲設備驅動程序 存儲設備驅動程序主要負責與硬盤、固態硬盤、光盤等存儲設備進行通信。這類驅動程序需要
    的頭像 發表于 08-30 15:11 ?455次閱讀

    母線失壓處理的一般程序是什么

    母線失壓是指電力系統中母線電壓突然下降至零或接近零的情況,這通常會導致電力系統的不穩定和設備損壞。為了確保電力系統的安全穩定運行,需要對母線失壓進行及時有效的處理。以下是母線失壓處理的一般程序,我們
    的頭像 發表于 08-13 17:06 ?465次閱讀

    怎么判斷PLC程序丟失了

    PLC(Programmable Logic Controller,可編程邏輯控制器)是一種廣泛應用于工業自動化領域的控制器。PLC程序丟失可能會導致設備無法正常運行,甚至造成生產中斷。因此,判斷
    的頭像 發表于 07-25 10:01 ?1079次閱讀

    如何看懂檢測設備程序邏輯

    檢測設備程序邏輯是確保設備正常運行和提高檢測效率的關鍵。本文將介紹如何看懂檢測設備程序邏輯,包括程序結構、程序設計、程序調試、
    的頭像 發表于 07-17 16:50 ?343次閱讀

    操作FreeRTOS時,執行__WFI()導致系統滴答中斷無法喚醒設備怎么解決?

    內核時鐘全部關閉了,導致滴答中斷無法觸發,不知道是不是這樣的原因 2、如果__WFI()無法使用滴答中斷喚醒,那能否用普通定時器喚醒,怎么樣能夠讓普通定時器去替代系統滴答呢 希望有高人
    發表于 04-24 08:29

    PLC安裝調試流程程序

    模擬I/O輸入、輸出,檢查修改程序本步驟的目的在于驗證輸入的工作程序的正確性,該程序的邏輯所表達的工藝設備的聯鎖關系是否與設計的工藝控制要求相符,程序是否暢通。若不相符或不能運行完成全
    發表于 03-05 09:54 ?363次閱讀

    什么是單板機的監控程序

    初始化程序:用于設置單片機的初始狀態,包括初始化寄存器、設置中斷向量、啟動時鐘等。   主循環程序:監控程序的主程序,不斷循環執行,包括讀取輸入、
    的頭像 發表于 02-02 17:15 ?1319次閱讀
    什么是單板機的監控<b class='flag-5'>程序</b>?

    如何避免PLC程序卡死呢?

    編寫穩定的程序:編寫良好的、穩定的PLC程序是避免程序卡死的關鍵。確保程序邏輯清晰、簡潔,并遵循編程最佳實踐。避免死循環、邏輯錯誤和沖突的發生。
    的頭像 發表于 01-26 09:14 ?614次閱讀

    單片機處理模擬量的程序流程是如何的

    單片機處理模擬量的程序流程是一種常見的應用場景,單片機通常被用來處理各種類型的傳感器信號,例如溫度傳感器、壓力傳感器、光敏傳感器等。在本文中,我將詳盡地描述單片機處理模擬量的
    的頭像 發表于 12-15 09:28 ?1413次閱讀

    一文詳解PLC子程序與子程序指令

    在編程時經常會遇到相同的程序段需要多次執行的情況,如圖6-39所示,程序段A要執行兩次,編程時要寫兩段相同的程序段,這樣比較麻煩。解決這個問題的方法是將需要多次執行的程序段從主
    的頭像 發表于 12-14 13:33 ?7984次閱讀
    一文詳解PLC子<b class='flag-5'>程序</b>與子<b class='flag-5'>程序</b>指令

    idea如何多次運行程序

    在計算機編程的世界中,我們通常需要多次運行程序來測試其性能、調試錯誤或者進行大規模的數據處理。但是有些編程初學者可能會困惑于如何多次運行程序的問題。本文將會詳細介紹如何多次運行程序的不
    的頭像 發表于 12-06 14:59 ?1406次閱讀