女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

RTOS為什么用PendSV進行線程調度?

CHANBAEK ? 來源:硬件工程師干貨 ? 作者:硬件工程師干貨 ? 2023-03-01 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有些操作系統在“心跳”中斷(SysTick中斷)里進行線程切換,如果處理器正在執行一個ISR,此時SysTick異常到來,且SysTick優先級高,搶占了正在運行的用戶ISR,SysTick ISR是不能進行線程切換的,因為SysTick ISR運行完后要返回上一層用戶ISR,此時仍然處于異常模式,不能進入線程模式,強行進入線程模式會導致Fault異常。如下圖,延時到了第二個SysTick ISR才線程切換,實時性降低。在這種情況下,SysTick ISR中切換任務,這會導致任務切換延后。

pYYBAGP-vBmABjqgAACZDOEhLTs867.png

極端的情況下,SysTick中斷和用戶中斷步調一致,會導致任務切換嚴重滯后。如下圖所示:

pYYBAGP-vC-ARgIWAACHJ2Iqn98501.png

有朋友說了,既然SysTick中斷搶占了用戶中斷不能調度線程,那么在用戶ISR即將退出時進行調度就好了呀,確實比上面的情況要好一些,但這就需要在所有中斷的末尾都要檢查是否需要切換,增加用戶中斷程序復雜度。

也有朋友說了,把SysTick中斷優先級調到最低是不是也可以呢,當然可以,調低了優先級,避免了嵌套,就算用戶中斷期間產生SysTick中斷,但是SysTick中斷不能運行,用戶中斷結束后,SysTick中斷“咬尾”,這樣是沒問題的,可是有一點SysTick的優先級就無法提高了。

鑒于上述原因,我們想到了PendSV異常,這個異常比較特殊,可以理解為一個軟中斷(軟異常),代碼中操作寄存器就可以觸發此中斷,我們把它的優先級調整到最低,當SysTick ISR搶占了用戶中斷后,發現需要任務調度,就設置寄存器觸發PendSV異常,因為它優先級最低,不能響應,等到用戶中斷執行完立即自動響應,進行任務切換,如下圖所示。

poYBAGP-vECAXPiBAAC198jzyNM802.png

一般情況下:

1、PendSV中斷優先級設置為最低,用于線程調度。

2、SysTick中斷優先級根據自己需求設置,如果想讓心跳更準確就調高一些,如果想讓用戶中斷相應更迅速就調低一些。

3、可以和PendSV一樣都設置為最低。

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

    關注

    37

    文章

    7135

    瀏覽量

    125431
  • 中斷
    +關注

    關注

    5

    文章

    905

    瀏覽量

    42710
  • RTOS
    +關注

    關注

    24

    文章

    848

    瀏覽量

    121056
  • 線程
    +關注

    關注

    0

    文章

    508

    瀏覽量

    20179
  • Systick
    +關注

    關注

    0

    文章

    63

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RTOS中的線程、進程和協程詳解

    看到有小伙伴在討論【RTOS任務屬于線程還是進程】的話題,這里就來分析一下OS中的線程、進程和協程的這幾個概念,同時一起看看RTOS中的任務到底屬于哪一種。
    的頭像 發表于 11-09 12:36 ?2492次閱讀
    <b class='flag-5'>RTOS</b>中的<b class='flag-5'>線程</b>、進程和協程詳解

    深度剖析 RT-Thread 線程調度流程

    rt_system_scheduler_start:調度系統第一個線程rt_hw_context_switch_to:初始化上下文切換環境,觸發PendSV異常first_thread:系統中優先級最高
    的頭像 發表于 06-25 18:24 ?668次閱讀
    深度剖析 RT-Thread <b class='flag-5'>線程</b><b class='flag-5'>調度</b>流程

    RTOS如何在FX3中工作?

    大家好, 我正在使用 FX3 進行一個項目。 我想知道 RTOS 調度是如何工作的。 我知道調用“CyU3PKernelEntry();”后 RTOS 就會開始工作。 如果我只注冊
    發表于 05-06 13:20

    rtthread線程調度

    rtthread線程調度,RT-Thread多線程學習總結多線程是實時操作系統里面最重要的知識點之一,要學習RTOS,多
    發表于 07-20 07:21

    如何合理的進行線程切換與調度

    線程并發情況下,如何合理的進行線程切換與調度,充分發揮芯片性能,解決線程間沖突,是迫切需要解決的問題。MDK5.25版本以后提供了新的Sy
    發表于 08-24 07:33

    RT-Thread的線程簡介

    。RT-Thread的線程簡介線程(thread)是系統能夠進行調度的最小單位,在linux中也是這樣定義的,但是和我們RTOS中的thre
    發表于 08-24 07:56

    RTOS進行講解

    自動化類專業小伙伴最早接觸一般都是在接觸RTOS后了,然而對于計算機相關專業的小伙伴應該在學《計算機操作系統》老師對這一塊講解的非常清楚了,包括一些性能指標的定義與計算等等,不過作者這里僅僅只針對RTOS進行講解,大家感興趣可以
    發表于 11-10 07:24

    實現OSEK/VDX的RTOS進行汽車電控單元開發

    討論了現階段實現OSEK/VDX規范的實時操作系統(RTOs)進行汽車電控單元開發的必要性,介紹了OSEK OS的運行機制和特點,并對實現OSEK/VDX的
    發表于 04-20 08:49 ?15次下載

    RTOS線程訪問同一硬件(如UART)的方法

    RTOS線程(任務)訪問同一硬件(如UART)的方法
    的頭像 發表于 03-12 11:28 ?5860次閱讀

    LEDs狀態燈任務(線程)設計 (基于RTOS

    LEDs狀態燈任務(線程)設計(基于RTOS
    的頭像 發表于 03-12 11:30 ?2651次閱讀

    RTOS應用中的調度策略

    RTOS中,協同調度是基于優先級的非搶占調度方法。任務按優先級排序,并且是事件驅動類型的,一旦正在運行的任務完成,或者任務主動調用OS服務放棄CPU,就緒運行的優先級最高的任務才可以獲得CPU使用權。
    的頭像 發表于 05-29 09:19 ?946次閱讀
    <b class='flag-5'>RTOS</b>應用中的<b class='flag-5'>調度</b>策略

    什么是虛擬線程?虛擬線程到底是做什么用的呢?

    虛擬線程是在Java并發領域添加的一個新概念,那么虛擬線程到底是做什么用的呢?
    的頭像 發表于 10-29 10:23 ?3600次閱讀
    什么是虛擬<b class='flag-5'>線程</b>?虛擬<b class='flag-5'>線程</b>到底是做<b class='flag-5'>什么用</b>的呢?

    SCP線程模型特點

    線程 混合協作調度模型-調度在具有相同優先級的線程之間是協作的。 ?無需鎖 ?使代碼更簡單,避免了死鎖的情況。 ?它消除了對執行上下文/RTOS
    的頭像 發表于 11-02 17:07 ?839次閱讀
    SCP<b class='flag-5'>線程</b>模型特點

    新手必看的RTOS基礎知識

    時間片調度保證每個線程都有一個要執行的槽。這種類型的調度通常不利于實時應用。如果需要,TI-RTOS內核支持使用任務進行時間切片
    的頭像 發表于 11-20 16:06 ?2977次閱讀
    新手必看的<b class='flag-5'>RTOS</b>基礎知識

    基于RTOS的應用進程中的典型線程

    RTOS中的關鍵因素是最小的中斷延遲和最小的線程切換延遲。RTOS的價值在于它的響應速度或可預測性,而不是它在給定時間段內可以執行的工作量。
    發表于 03-05 09:32 ?1011次閱讀
    基于<b class='flag-5'>RTOS</b>的應用進程中的典型<b class='flag-5'>線程</b>