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

I2C子系統(tǒng)優(yōu)先級(jí)翻轉(zhuǎn)與優(yōu)先級(jí)繼承

麥辣雞腿堡 ? 來(lái)源:嵌入式Linux系統(tǒng)開(kāi)發(fā) ? 作者:嵌入式Linux系統(tǒng)開(kāi) ? 2023-07-22 15:08 ? 次閱讀

優(yōu)先級(jí)翻轉(zhuǎn)與優(yōu)先級(jí)繼承

優(yōu)先級(jí)翻轉(zhuǎn)在可剝奪內(nèi)核中是非常常見(jiàn)的,例子如下(H:High、M:Middle、L:Low)

圖片

任務(wù) H 和任務(wù) M 處于掛起狀態(tài),等待某一事件的發(fā)生,任務(wù) L 正在運(yùn)行。

某一時(shí)刻任務(wù) L 想要訪問(wèn)共享資源,在此之前它必須先獲得對(duì)應(yīng)該資源的信號(hào)量。

任務(wù) L 獲得信號(hào)量并開(kāi)始使用該共享資源。

由于任務(wù) H 優(yōu)先級(jí)高,它等待的事件發(fā)生后便剝奪了任務(wù) L 的 CPU 使用權(quán)。

任務(wù) H 開(kāi)始運(yùn)行。

任務(wù) H 運(yùn)行過(guò)程中也要使用任務(wù) L 正在使用著的資源,由于該資源的信號(hào)量還被任務(wù)L 占用著,任務(wù) H 只能進(jìn)入掛起狀態(tài),等待任務(wù) L
釋放該信號(hào)量。

任務(wù) L 繼續(xù)運(yùn)行。

由于任務(wù) M 的優(yōu)先級(jí)高于任務(wù) L,當(dāng)任務(wù) M 等待的事件發(fā)生后,任務(wù) M 剝奪了任務(wù)L 的 CPU 使用權(quán)。

任務(wù) M 處理該處理的事。

任務(wù) M 執(zhí)行完畢后,將 CPU 使用權(quán)歸還給任務(wù) L。

任務(wù) L 繼續(xù)運(yùn)行。

最終任務(wù) L 完成所有的工作并釋放了信號(hào)量,到此為止,由于實(shí)時(shí)內(nèi)核知道有個(gè)高優(yōu)先級(jí)的任務(wù)在等待這個(gè)信號(hào)量,故內(nèi)核做任務(wù)切換。

任務(wù) H 得到該信號(hào)量并接著運(yùn)行。

在這種情況下,任務(wù) H 的優(yōu)先級(jí)實(shí)際上降到了任務(wù) L 的優(yōu)先級(jí)水平。因?yàn)槿蝿?wù) H 要一直等待直到任務(wù) L 釋放其占用的那個(gè)共享資源。由于任務(wù) M剝奪了任務(wù) L 的 CPU 使用權(quán),使得任務(wù) H 的情況更加惡化,這樣就相當(dāng)于任務(wù) M 的優(yōu)先級(jí)高于任務(wù) H,導(dǎo)致優(yōu)先級(jí)翻轉(zhuǎn)。

Linux 用 rt_mutex 來(lái)解決該問(wèn)題,rt_mutex 是帶優(yōu)先級(jí)繼承的互斥鎖。

當(dāng)一個(gè) rt_mutex 正在被一個(gè)低優(yōu)先級(jí)的任務(wù)使用,而此時(shí)有個(gè)高優(yōu)先級(jí)的任務(wù)也嘗試獲取這個(gè) rt_mutex的話就會(huì)被阻塞。不過(guò)這個(gè)高優(yōu)先級(jí)的任務(wù)會(huì)將低優(yōu)先級(jí)任務(wù)的優(yōu)先級(jí)提升到與自己相同的優(yōu)先級(jí),這就是優(yōu)先級(jí)繼承。優(yōu)先級(jí)繼承盡可能的降低了高優(yōu)先級(jí)任務(wù)處于阻塞態(tài)的時(shí)間,并且將已經(jīng)出現(xiàn)的“優(yōu)先級(jí)翻轉(zhuǎn)”的影響降到最低。

優(yōu)先級(jí)繼承并不能完全的消除優(yōu)先級(jí)翻轉(zhuǎn),它只是盡可能的降低優(yōu)先級(jí)翻轉(zhuǎn)帶來(lái)的影響。

rt_mutex 不能用于中斷服務(wù)函數(shù)中,原因如下:

rt_mutex 有優(yōu)先級(jí)繼承的機(jī)制,所以只能用在任務(wù)中,不能用于中斷服務(wù)函數(shù)。

中斷服務(wù)函數(shù)中不能因?yàn)橐却?rt_mutex 而設(shè)置阻塞時(shí)間進(jìn)入阻塞態(tài)。

i2c_transfer 調(diào)用 __i2c_transfer 之前,就加了 rt_mutex,保證 I2C 傳輸盡快執(zhí)行。

聲明:本文內(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)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1410

    瀏覽量

    41150
  • 子系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    115

    瀏覽量

    12696
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1537

    瀏覽量

    127157
收藏 人收藏

    評(píng)論

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

    嵌入式技術(shù)中如何定義進(jìn)程優(yōu)先級(jí)

    靜態(tài)優(yōu)先級(jí)是所有相關(guān)優(yōu)先級(jí)的計(jì)算的起點(diǎn),要么繼承自父進(jìn)程,要么用戶空間自行設(shè)定。一旦修改了靜態(tài)優(yōu)先級(jí),那么normal priority和動(dòng)態(tài)優(yōu)先級(jí)
    發(fā)表于 09-18 16:08 ?1711次閱讀
    嵌入式技術(shù)中如何定義進(jìn)程<b class='flag-5'>優(yōu)先級(jí)</b>

    基于優(yōu)先級(jí)搶占系統(tǒng)的QNX調(diào)度算法

    調(diào)度算法,是基于優(yōu)先級(jí)的。QNX的線程優(yōu)先級(jí),是一個(gè)0-255的數(shù)字,數(shù)字越大優(yōu)先級(jí)越高。所以,優(yōu)先級(jí)0是內(nèi)核中的idle線程。同時(shí),優(yōu)先級(jí)
    發(fā)表于 10-31 09:17 ?936次閱讀

    RTOS應(yīng)用中的優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題

    在嵌入式系統(tǒng)中,如果使用基于優(yōu)先級(jí)調(diào)度算法的RTOS,系統(tǒng)中可能發(fā)生優(yōu)先級(jí)反轉(zhuǎn)現(xiàn)象。優(yōu)先級(jí)反轉(zhuǎn)用來(lái)描述
    發(fā)表于 12-14 11:00 ?1509次閱讀

    uC/OS-II中優(yōu)先級(jí)翻轉(zhuǎn)問(wèn)題

    本文著重分析優(yōu)先級(jí)翻轉(zhuǎn)問(wèn)題的產(chǎn)生和影響,以及在uC/OS-II中的解決方案,在嵌入式系統(tǒng)的應(yīng)用中,實(shí)時(shí)性是一個(gè)重要的指標(biāo),而優(yōu)先級(jí)翻轉(zhuǎn)是影響
    發(fā)表于 01-06 16:53 ?2528次閱讀

    開(kāi)發(fā)過(guò)程中是什么原因?qū)е?b class='flag-5'>優(yōu)先級(jí)翻轉(zhuǎn)的?

    最近在開(kāi)發(fā)過(guò)程中,遇到一個(gè)問(wèn)題線程優(yōu)先級(jí)翻轉(zhuǎn)的問(wèn)題。那什么原因?qū)е?b class='flag-5'>優(yōu)先級(jí)翻轉(zhuǎn)呢? 在RTOS開(kāi)發(fā)中,優(yōu)先級(jí)
    的頭像 發(fā)表于 05-28 15:28 ?2530次閱讀
    開(kāi)發(fā)過(guò)程中是什么原因?qū)е?b class='flag-5'>優(yōu)先級(jí)</b><b class='flag-5'>翻轉(zhuǎn)</b>的?

    cortex M內(nèi)核優(yōu)先級(jí)設(shè)置

    Cortex M內(nèi)核中每個(gè)中斷都有一個(gè)8位的優(yōu)先級(jí)設(shè)置寄存器這個(gè)8位的寄存器可以分為搶占優(yōu)先級(jí)和子優(yōu)先級(jí)兩個(gè)部分(通過(guò)設(shè)置優(yōu)先級(jí)組設(shè)置)搶占優(yōu)先級(jí)
    發(fā)表于 12-01 11:51 ?4次下載
    cortex M內(nèi)核<b class='flag-5'>優(yōu)先級(jí)</b>設(shè)置

    2.FreeRTOS中斷優(yōu)先級(jí)和任務(wù)優(yōu)先級(jí)

    FreeRTOS中斷優(yōu)先級(jí)和任務(wù)優(yōu)先級(jí)架構(gòu):Cortex-M3版本:FreeRTOS V9.0.0前言:最開(kāi)始,我并沒(méi)有搞清楚什么是中斷優(yōu)先級(jí)和任務(wù)優(yōu)先級(jí),但看了部分資料后發(fā)現(xiàn)這兩個(gè)并
    發(fā)表于 12-04 20:21 ?9次下載
    <b class='flag-5'>2</b>.FreeRTOS中斷<b class='flag-5'>優(yōu)先級(jí)</b>和任務(wù)<b class='flag-5'>優(yōu)先級(jí)</b>

    STM32F103芯片中斷優(yōu)先級(jí)以及FreeRTOS優(yōu)先級(jí)設(shè)置

    STM32F103只用了4個(gè)位來(lái)表達(dá)優(yōu)先級(jí),因此最多支持16級(jí)的可編程優(yōu)先級(jí)(0~15),15為最低優(yōu)先級(jí)
    發(fā)表于 01-25 18:59 ?1次下載
    STM32F103芯片中斷<b class='flag-5'>優(yōu)先級(jí)</b>以及FreeRTOS<b class='flag-5'>優(yōu)先級(jí)</b>設(shè)置

    uC/OS-II學(xué)習(xí)筆記——優(yōu)先級(jí)反轉(zhuǎn)與優(yōu)先級(jí)繼承機(jī)制

    優(yōu)先級(jí)反轉(zhuǎn),是指某同步資源被較低優(yōu)先級(jí)的進(jìn)程/線程所擁有,較高優(yōu)先級(jí)的進(jìn)程/線程競(jìng)爭(zhēng)該同步資源未獲得該資源,而使得較高優(yōu)先級(jí)進(jìn)程/線程反而推遲被調(diào)度執(zhí)行的現(xiàn)象。
    發(fā)表于 02-09 10:33 ?2次下載
    uC/OS-II學(xué)習(xí)筆記——<b class='flag-5'>優(yōu)先級(jí)</b>反轉(zhuǎn)與<b class='flag-5'>優(yōu)先級(jí)</b><b class='flag-5'>繼承</b>機(jī)制

    中斷優(yōu)先級(jí)處理的原則及配置 搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的區(qū)別

    首先我們需要知道什么是中斷優(yōu)先級(jí):中斷優(yōu)先級(jí)是CPU響應(yīng)中斷的先后順序
    的頭像 發(fā)表于 05-18 15:10 ?3w次閱讀
    中斷<b class='flag-5'>優(yōu)先級(jí)</b>處理的原則及配置 搶占<b class='flag-5'>優(yōu)先級(jí)</b>和響應(yīng)<b class='flag-5'>優(yōu)先級(jí)</b>的區(qū)別

    具有固定優(yōu)先級(jí)調(diào)度程序RTOS的優(yōu)先級(jí)倒置

      優(yōu)先級(jí)繼承并不能真正治愈優(yōu)先級(jí)倒置,它只是在某些情況下將其影響最小化。硬實(shí)時(shí)應(yīng)用程序仍應(yīng)仔細(xì)設(shè)計(jì),以便一開(kāi)始就不會(huì)發(fā)生優(yōu)先級(jí)反轉(zhuǎn)。
    的頭像 發(fā)表于 06-22 15:45 ?1534次閱讀
    具有固定<b class='flag-5'>優(yōu)先級(jí)</b>調(diào)度程序RTOS的<b class='flag-5'>優(yōu)先級(jí)</b>倒置

    FreeRTOS任務(wù)的優(yōu)先級(jí)示例

    任務(wù)的優(yōu)先級(jí):0~24之間。數(shù)字越大,任務(wù)優(yōu)先等級(jí)越高。高優(yōu)先級(jí)的任務(wù)優(yōu)先執(zhí)行。
    的頭像 發(fā)表于 09-15 11:13 ?3179次閱讀

    Free RTOS的優(yōu)先級(jí)翻轉(zhuǎn)

    優(yōu)先級(jí)翻轉(zhuǎn)簡(jiǎn)介:就是高優(yōu)先級(jí)的任務(wù)運(yùn)行起來(lái)的效果好像成了低優(yōu)先級(jí),而低優(yōu)先級(jí)比高優(yōu)先級(jí)先運(yùn)行;
    的頭像 發(fā)表于 02-10 15:31 ?1626次閱讀
    Free RTOS的<b class='flag-5'>優(yōu)先級(jí)</b><b class='flag-5'>翻轉(zhuǎn)</b>

    什么是優(yōu)先級(jí)反轉(zhuǎn)

    ,才能運(yùn)行TaskC,TaskC釋放信號(hào)量之后高優(yōu)先級(jí)的TaskA才能執(zhí)行。看起來(lái)高優(yōu)先級(jí)的TaskA還不如低優(yōu)先級(jí)的TaskC優(yōu)先級(jí)高,這就叫做優(yōu)
    的頭像 發(fā)表于 04-24 13:01 ?2726次閱讀
    什么是<b class='flag-5'>優(yōu)先級(jí)</b>反轉(zhuǎn)

    freertos中斷優(yōu)先級(jí)在哪設(shè)置

    中斷優(yōu)先級(jí)之前,我們需要理解中斷優(yōu)先級(jí)的概念。在嵌入式系統(tǒng)中,中斷是硬件或軟件事件,它們可以打斷CPU的當(dāng)前執(zhí)行流程,讓CPU去處理更緊急的任務(wù)。中斷優(yōu)先級(jí)用于確定多個(gè)中斷請(qǐng)求之間的處
    的頭像 發(fā)表于 09-02 14:17 ?1430次閱讀
    主站蜘蛛池模板: 黄视频在线免费看 | 日韩免费精品视频 | 五月婷婷六月激情 | 欧美天天爽 | 亚洲天堂婷婷 | 午夜激情小视频 | 免费日本视频 | 波多野结衣在线观看一区二区 | 一级片a| 奇米影视四色首页手机在线 | 五月天婷婷丁香中文在线观看 | 成人国内精品久久久久影院 | 天天摸天天看 | 成人午夜影院在线观看 | 日韩在线视频www色 日韩在线视频免费观看 | 亚洲精品一线二线三线 | 色香五月 | 大色综合色综合网站 | 亚洲国产美女精品久久 | 亚洲 图片 小说 欧美 另类 | 四虎网站 | 俺来也久久 | 亚洲国产香蕉视频欧美 | 狠狠干狠狠操 | 欧美视频不卡一区二区三区 | 免费精品美女久久久久久久久 | 午夜嘿嘿 | 能可以直接看的av网址 | 四虎影院网址大全 | 狠狠色丁香久久婷婷综合丁香 | 五月婷婷丁香综合网 | 在线播放免费视频 | 韩国三级视频在线 | 日本特黄特黄刺激大片免费 | 日本高清网站 | www.九九热 | 国产va免费精品高清在线观看 | 尻逼尻逼 | 人人看人人做人人爱精品 | 一区不卡在线观看 | 2022欧美高清中文字幕在线看 |