国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    7402

    瀏覽量

    129307
  • 中斷
    +關注

    關注

    5

    文章

    917

    瀏覽量

    43758
  • RTOS
    +關注

    關注

    25

    文章

    866

    瀏覽量

    122995
  • 線程
    +關注

    關注

    0

    文章

    509

    瀏覽量

    20826
  • Systick
    +關注

    關注

    0

    文章

    67

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    RTOS如何在FX3中工作?

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

    【瑞薩FPB-RA6E2試用】【瑞薩RA × Zephyr開發板評測】+線程創建及測試

    操作系統即RTOS(Real-Time Operating System。 在RTOS中,線程(Thread) 是任務調度和并發執行的基本單位。針對不同的
    發表于 02-03 21:33

    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

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

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

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

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

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

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

    RTOS應用中的調度策略

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

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

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

    SCP線程模型特點

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

    新手必看的RTOS基礎知識

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

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

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