在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

SysTick的優先級配置方法

CHANBAEK ? 來源:硬件工程師干貨 ? 作者:硬件工程師干貨 ? 2023-03-01 10:49 ? 次閱讀

SysTick的優先級配置,常見的有兩種說法,這兩種說法完全相反,依次說一下各自特點。

第一種:

SysTick中斷優先級應該設置為高。

在使用實時操作系統時,把內核“心跳”定時器的優先級調高一些。持這種觀點的人認為優先級調高了,使SysTick的ISR能搶占其它ISR,保證系統心跳的準確性,心跳準確了,才能保證實時性,SysTick的ISR一般都很短小精悍,對被搶占的ISR影響較小。

我們來看一下優先級高了會怎么樣,如下圖所示,SysTick ISR能夠搶占用戶ISR,SysTick依然按照設定值規律性中斷。這種情況下對于線程時間片輪轉的方式比較準確,輪轉實時性好,基于SysTick的軟定時器也比較精準。但是如果用戶中斷有很多種,而且很頻繁,那么SysTick會不停的打斷用戶中斷,不斷的出棧入棧,影響用戶中斷的實時性。所以說SysTick中斷優先級調高了有好處也有壞處。

pYYBAGP-vOiAQJJeAACJu8DyETQ719.png

第二種:

SysTick中斷優先級應該設置為低。

持這種觀點的人認為優先級設置為低了,用戶中斷能夠搶占SysTick,用戶中斷更準確,能快速響應內外部中斷。我們來看一下優先級調低了有什么現象。

如下圖所示,在執行用戶ISR的時候,SysTick中斷到來,由于優先級低,只能掛起等待,用戶ISR結束后立即運行,最終導致兩次“心跳”間隔大,比如軟定時器等。從圖中可以看出,由于于SysTick有自動裝載功能,沒有影響下一次中斷。

poYBAGP-vPeAK2fPAADgf03c8Ok687.png

上圖中雖然某次心跳間隔大了,但是沒有“丟步”。如果用戶中斷種類多且很頻繁,如下圖所示,SysTick少進入一次中斷,這種情況不準確了。SysTick中斷不準了,線程時間片輪轉就不準了,基于SysTick的軟定時器也不準了。很多人人認為那可是系統時鐘呀,怎么能夠不準確,那還能叫實時操作系統嗎?仔細想一下就知道了,優先級調低了,用戶中斷不受SysTick中斷影響,保障了用戶中斷,就是保障實時性!

poYBAGP-vRiAPgVSAADmS1XpqsA044.png

總結:

前面的文章中分析了(參見下面擴展閱讀),在實時操作系統中,實時性最高的是中斷程序,要及時的處理內外部中斷,線程內執行的代碼因為需要任務調度等,實時性差一些。

如果SysTick優先級調高,影響了用戶中斷,再加上線程調度本身也不準確,那么整個操作系統沒有準確的地方了。因此我個人同意第二種說法,SysTick優先級降低,保障用戶中斷的實時性,線程的實時性放到第二位,這樣才能體現出實時特性。

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

    關注

    37

    文章

    6859

    瀏覽量

    123501
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41590
  • ISR
    ISR
    +關注

    關注

    0

    文章

    38

    瀏覽量

    14454
  • 線程
    +關注

    關注

    0

    文章

    505

    瀏覽量

    19715
  • Systick
    +關注

    關注

    0

    文章

    62

    瀏覽量

    13124
收藏 人收藏

    評論

    相關推薦

    systick的中斷優先級是否應該設置為最高優先級的嵌套中斷?

    最近在學習ucosii有這樣一個疑問,關于stm32的systick作為ucosii的基準時鐘,systick的中斷優先級是否應該設置為最高優先級的嵌套中斷。理由是什么?各位大俠求指教
    發表于 05-16 06:44

    systick優先級比外設的優先級高還是低,很多人回答不了

    提示:systick是內核的外設,其他外設比如串口,adc等是內核之外的外設。答案分析:[hide]1、只要內核的優先級可以配置,那么內核的優先級就不是一定比外設的高,而是要先比較軟件
    發表于 09-01 09:05

    中斷優先級配置的函數

    一、中斷優先級配置的函數:1.NVIC_IRQChannelPreemptionPriority配置搶占優先級2.NVIC_IRQChannelSubPriority
    發表于 08-04 08:24

    STM32滴答時鐘SYStick優先級設定方法是什么

    STM32滴答時鐘SYStick優先級設定方法原文鏈接滴答寄存器Systick的定義和地址分配如下typedef struct{ __IO uint32_t CTRL; /*!<
    發表于 08-18 06:34

    怎樣去設定STM32滴答時鐘SYStick優先級

    怎樣去設定STM32滴答時鐘SYStick優先級呢?STM32滴答時鐘SYStick優先級設定方法是什么?
    發表于 11-22 07:15

    RT-Thread的SysTick和pendSV的中斷優先級該怎樣去設置呢

    的寄存器位置不同。外設的中斷配置在NVIC的IP內,內核的中斷配置在SCB內。更改SysTick的中斷優先級方法:1.把匯編部分的NVIC
    發表于 04-25 11:09

    如何配置SysTick定時器中斷優先級

    你好恩智浦團隊。我嘗試配置 SysTick 中斷但沒有成功。問題 1:如何更改 SysTick IRQ 優先級?我使用了下面提到的兩種方法
    發表于 02-28 09:41

    STM32中斷及FreeRTOS中斷優先級配置

    STM32中斷,及FreeRTOS中斷優先級配置
    的頭像 發表于 03-04 11:45 ?8958次閱讀
    STM32中斷及FreeRTOS中斷<b class='flag-5'>優先級</b><b class='flag-5'>配置</b>

    CortexM4內核Stm32-HAL_Init()及HAL_InitTick(TICK_INT_PRIORITY()詳解——Systick中斷優先級

    )函數就講完了,其中,TICK_INT_PRIORITY為Systick時鐘默認中斷,為0x0F。如上文搶占有限和響應優先級都是2來說,那么Systick的中斷
    發表于 12-01 13:36 ?7次下載
    CortexM4內核Stm32-HAL_Init()及HAL_InitTick(TICK_INT_PRIORITY()詳解——<b class='flag-5'>Systick</b>中斷<b class='flag-5'>優先級</b>

    關于stm32內核外設Systick與普通外設中斷優先級比較的驗證實驗(fishing_10)

    最近又遇到了使用Systick來產生精確計時,然后又涉及到了Systick的中斷優先級的問題。我們老板認為Systick屬于內核外設,中斷優先級
    發表于 12-04 13:36 ?12次下載
    關于stm32內核外設<b class='flag-5'>Systick</b>與普通外設中斷<b class='flag-5'>優先級</b>比較的驗證實驗(fishing_10)

    Cortex-M中斷及FreeRTOS中斷優先級配置原理

    下面就來說說關于Cortex-M的中斷,及FreeRTOS中斷優先級配置原理。
    發表于 02-08 15:30 ?3次下載
    Cortex-M中斷及FreeRTOS中斷<b class='flag-5'>優先級</b><b class='flag-5'>配置</b>原理

    中斷優先級處理的原則及配置 搶占優先級和響應優先級的區別

    首先我們需要知道什么是中斷優先級:中斷優先級是CPU響應中斷的先后順序
    的頭像 發表于 05-18 15:10 ?2.8w次閱讀
    中斷<b class='flag-5'>優先級</b>處理的原則及<b class='flag-5'>配置</b> 搶占<b class='flag-5'>優先級</b>和響應<b class='flag-5'>優先級</b>的區別

    什么是優先級反轉

    假設現在有三個任務TaskA(優先級高)、TaskB(優先級中)、TaskC(優先級低),一個信號量(Semaphore),此信號量用于任務之間爭奪某個資源。在某一時刻,高優先級的Ta
    的頭像 發表于 04-24 13:01 ?2320次閱讀
    什么是<b class='flag-5'>優先級</b>反轉

    為什么使用CubeMx配置NVIC時不見子優先級選項

    時,不難發現一個問題,那就是怎么沒有中斷子優先級【或稱響應優先級、副優先級等】的配置?!【當然,很多時候我們或許沒有關注子優先級】如下圖所示
    的頭像 發表于 09-09 15:32 ?1334次閱讀
    為什么使用CubeMx<b class='flag-5'>配置</b>NVIC時不見子<b class='flag-5'>優先級</b>選項

    GD32如何配置中斷優先級分組以及中斷優先級

    使用GD32 MCU的過程中,大家可能會有以下疑問:中斷優先級如何配置和使用?
    的頭像 發表于 01-10 10:30 ?3162次閱讀
    GD32如何<b class='flag-5'>配置</b>中斷<b class='flag-5'>優先級</b>分組以及中斷<b class='flag-5'>優先級</b>
    主站蜘蛛池模板: 丁香视频在线观看播放| 亚洲欧洲一区| avtt天堂网永久资源| 91美女在线播放| 手机看片国产在线| 成人夜色| 久久国产精品岛国搬运工| 国产小视频在线| 国产成人啪午夜精品网站男同| 国产美女亚洲精品久久久久久| 高清成年美女黄网站色大| 你懂得的在线观看免费视频| 久久久精品波多野结衣| 东北老女人啪啪对白| 91成人免费| 怡红院日本一道日本久久| 色婷婷国产| 狠狠狠色丁香婷婷综合久久88 | 亚洲第九页| 日韩午夜精品| 国产三级a三级三级野外| 夜夜操夜夜爽| 99久久免费精品视频| 天天舔天天操天天干| 天天干天天干| 毛片天天看| 一区二区影视| 亚洲成人三级| 美女色18片黄黄色| 九九精品久久久久久噜噜| 在线免费国产| a毛片基地免费全部香蕉| 日本片巨大的乳456线观看| 日日拍拍| 成人啪啪网站| 午夜伦伦| 黄色自拍偷拍| 天天摸天天澡天天碰天天弄| 2018天天干天天操| 中文字幕第一| 性欧美大胆高清视频|