一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SysTick的優(yōu)先級配置方法

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

掃碼添加小助手

加入工程師交流群

SysTick的優(yōu)先級配置,常見的有兩種說法,這兩種說法完全相反,依次說一下各自特點(diǎn)。

第一種:

SysTick中斷優(yōu)先級應(yīng)該設(shè)置為高。

在使用實(shí)時操作系統(tǒng)時,把內(nèi)核“心跳”定時器的優(yōu)先級調(diào)高一些。持這種觀點(diǎn)的人認(rèn)為優(yōu)先級調(diào)高了,使SysTick的ISR能搶占其它ISR,保證系統(tǒng)心跳的準(zhǔn)確性,心跳準(zhǔn)確了,才能保證實(shí)時性,SysTick的ISR一般都很短小精悍,對被搶占的ISR影響較小。

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

pYYBAGP-vOiAQJJeAACJu8DyETQ719.png

第二種:

SysTick中斷優(yōu)先級應(yīng)該設(shè)置為低。

持這種觀點(diǎn)的人認(rèn)為優(yōu)先級設(shè)置為低了,用戶中斷能夠搶占SysTick,用戶中斷更準(zhǔn)確,能快速響應(yīng)內(nèi)外部中斷。我們來看一下優(yōu)先級調(diào)低了有什么現(xiàn)象。

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

poYBAGP-vPeAK2fPAADgf03c8Ok687.png

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

poYBAGP-vRiAPgVSAADmS1XpqsA044.png

總結(jié):

前面的文章中分析了(參見下面擴(kuò)展閱讀),在實(shí)時操作系統(tǒng)中,實(shí)時性最高的是中斷程序,要及時的處理內(nèi)外部中斷,線程內(nèi)執(zhí)行的代碼因?yàn)樾枰蝿?wù)調(diào)度等,實(shí)時性差一些。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7130

    瀏覽量

    125345
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    905

    瀏覽量

    42669
  • ISR
    ISR
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    14766
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    508

    瀏覽量

    20151
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    systick的中斷優(yōu)先級是否應(yīng)該設(shè)置為最高優(yōu)先級的嵌套中斷?

    最近在學(xué)習(xí)ucosii有這樣一個疑問,關(guān)于stm32的systick作為ucosii的基準(zhǔn)時鐘,systick的中斷優(yōu)先級是否應(yīng)該設(shè)置為最高優(yōu)先級的嵌套中斷。理由是什么?各位大俠求指教
    發(fā)表于 05-16 06:44

    systick優(yōu)先級比外設(shè)的優(yōu)先級高還是低,很多人回答不了

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

    中斷優(yōu)先級配置的函數(shù)

    一、中斷優(yōu)先級配置的函數(shù):1.NVIC_IRQChannelPreemptionPriority配置搶占優(yōu)先級2.NVIC_IRQChannelSubPriority
    發(fā)表于 08-04 08:24

    STM32滴答時鐘SYStick優(yōu)先級設(shè)定方法是什么

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

    怎樣去設(shè)定STM32滴答時鐘SYStick優(yōu)先級

    怎樣去設(shè)定STM32滴答時鐘SYStick優(yōu)先級呢?STM32滴答時鐘SYStick優(yōu)先級設(shè)定方法是什么?
    發(fā)表于 11-22 07:15

    RT-Thread的SysTick和pendSV的中斷優(yōu)先級該怎樣去設(shè)置呢

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

    如何配置SysTick定時器中斷優(yōu)先級?

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

    STM32中斷及FreeRTOS中斷優(yōu)先級配置

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

    CortexM4內(nèi)核Stm32-HAL_Init()及HAL_InitTick(TICK_INT_PRIORITY()詳解——Systick中斷優(yōu)先級

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

    關(guān)于stm32內(nèi)核外設(shè)Systick與普通外設(shè)中斷優(yōu)先級比較的驗(yàn)證實(shí)驗(yàn)(fishing_10)

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

    Cortex-M中斷及FreeRTOS中斷優(yōu)先級配置原理

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

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

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

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

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

    為什么使用CubeMx配置NVIC時不見子優(yōu)先級選項(xiàng)

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

    GD32如何配置中斷優(yōu)先級分組以及中斷優(yōu)先級

    使用GD32 MCU的過程中,大家可能會有以下疑問:中斷優(yōu)先級如何配置和使用?
    的頭像 發(fā)表于 01-10 10:30 ?3795次閱讀
    GD32如何<b class='flag-5'>配置</b>中斷<b class='flag-5'>優(yōu)先級</b>分組以及中斷<b class='flag-5'>優(yōu)先級</b>