精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

FreeRTOS開關中斷定義

麥辣雞腿堡 ? 來源:嵌入式Linux系統開發 ? 作者:嵌入式Linux系統開 ? 2023-09-28 11:37 ? 次閱讀

FreeRTOS 開關中斷

FreeRTOS 開關中斷函數為 portENABLE_INTERRUPTS ()和 portDISABLE_INTERRUPTS(),這兩個函數其實是宏定義,在 portmacro.h 中有定義,如下:

#define portDISABLE_INTERRUPTS()    vPortRaiseBASEPRI()
#define portENABLE_INTERRUPTS()    vPortSetBASEPRI(0)

可以看出開關中斷實際上是通過函數 vPortSetBASEPRI(0)和 vPortRaiseBASEPRI()來實現的。

函數 vPortSetBASEPRI()是向寄存器 BASEPRI 寫入一個值,此值作為參數 ulBASEPRI 傳 遞進來,portENABLE_INTERRUPTS()是開中斷,它傳遞了個 0 給 vPortSetBASEPRI(),根據我們前面講解 BASEPRI 寄存器可知,結果就是開中斷。

函 數 vPortRaiseBASEPRI() 是 向 寄 存 器 BASEPRI 寫 入 宏configMAX_SYSCALL_INTERRUPT_PRIORITY , 那 么 優 先 級 低 于configMAX_SYSCALL_INTERRUPT_PRIORITY 的中斷就會被屏蔽!

臨界段代碼

臨界段代碼也叫做臨界區,是指那些必須完整運行,不能被打斷的代碼段,比如有的外設的初始化需要嚴格的時序,初始化過程中不能被打斷。FreeRTOS 在進入臨界段代碼的時候需要關閉中斷,當處理完臨界段代碼以后再打開中斷。FreeRTOS 系統本身就有很多的臨界段代碼,這些代碼都加了臨界段代碼保護,我們在寫自己的用戶程序的時候有些地方也需要添加臨界段代碼保護。

FreeRTOS 與 臨 界 段 代 碼 保 護 有 關 的 函 數 有 4 個 :taskENTER_CRITICAL() 、taskEXIT_CRITICAL() 、 taskENTER_CRITICAL_FROM_ISR() 和taskEXIT_CRITICAL_FROM_ISR(),這四個函數其實是宏定義,在 task.h 文件中有定義。這四個函數的區別是前兩個是任務級的臨界段代碼保護,后兩個是中斷級的臨界段代碼保護。

任務級臨界代碼保護使用方法如下:

圖片

中斷級臨界代碼保護使用方法如下:

圖片

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

    關注

    19

    文章

    3127

    瀏覽量

    93497
  • 嵌入式
    +關注

    關注

    5068

    文章

    19019

    瀏覽量

    303292
  • 寄存器
    +關注

    關注

    31

    文章

    5317

    瀏覽量

    120008
  • 函數
    +關注

    關注

    3

    文章

    4306

    瀏覽量

    62431
  • FreeRTOS
    +關注

    關注

    12

    文章

    483

    瀏覽量

    62010
收藏 人收藏

    評論

    相關推薦

    rt-thread 優化系列(二) 之 同步和消息關中斷分析

    書接前文,上篇優化聊的是關中斷操作,在很多地方過保護,導致關中斷時間太久,可能引起其它中斷不能及時響應。今天特意說說線程間同步和通信,分析一下它們是怎么影響關中斷時間的,比起前文會有些
    的頭像 發表于 06-21 09:47 ?3919次閱讀

    FreeRTOS中斷測試避坑指南

    任何調用中斷安全FreeRTOS API函數的中斷服務例程都可以使用的最高中斷優先級。不要從任何優先級高于此的中斷調用
    的頭像 發表于 12-21 09:04 ?979次閱讀
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>中斷</b>測試避坑指南

    轉:第15章 FreeRTOS臨界段和開關中斷

    第15章FreeRTOS臨界段和開關中斷 本章教程為大家講解兩個重要的概念,FreeRTOS的臨界段和開關中斷。 本章教程配套的例子含Cortex-M3內核的STM32F103和Cor
    發表于 08-31 10:15

    轉第16章 FreeRTOS調度鎖,任務鎖和中斷

    的作用區分開,調度鎖只是禁止了任務調度,并沒有關閉任何中斷中斷還是正常執行的。而臨界段進行了開關中斷操作。16.2 中斷中斷鎖就是RTO
    發表于 09-01 07:45

    為什么ucosII移植后開關中斷函數總是報錯?

    for CPU status register */ OS_CPU_SRcpu_sr; #endif不加開關中斷,功能能實現;加了開關中斷,有這個定義不會報錯,也能實現功能但我感覺這樣肯定不對啊,我
    發表于 07-26 04:35

    FreeRTOS_中斷Github簡介

    STM32CubeMX學習筆記——FreeRTOS_中斷Github簡介任務創建可視化創建方式代碼創建方式開關中斷Github簡介在應用中有許多禁止被打斷的操作,如底層驅動等,這個時候就需要...
    發表于 08-13 06:07

    怎樣去使用FreeRTOS中斷配置和臨界段呢

    函數1.開關中斷2.臨界段代碼1、taskENTER_CRITICAL()和 taskEXIT_CRITICAL()任務級臨界代碼保護使用方法如下:2.
    發表于 01-14 09:28

    RTThread中開關中斷的具體實現過程以及進入臨界區的相關操作說明

    1、全局中斷對于Cortx-M3系列MCU ,RTThread是通過操作,中斷屏蔽寄存器PRIMASK實現開關中斷操作的,《Cortex-M3權威指南》中對PRIMASK寄存器有描述如下:這個是只有
    發表于 05-27 14:52

    請問ch32v307全局中斷開關定義怎樣寫?

    ch32v307 全局中斷開關 定義怎樣寫?就像MDK中這個語句 __set_PRIMASK( 1 ); //關閉全局中斷,不關中斷就等著出錯吧,呵呵。謝謝!
    發表于 09-23 07:20

    燈管預熱和中斷定時器電路圖

    燈管預熱和中斷定時器電路圖 燈管預熱和中斷定時器電路圖 在ML4835中設計的
    發表于 07-17 09:36 ?1131次閱讀
    燈管預熱和<b class='flag-5'>中斷定</b>時器電路圖

    基于STM32應用的FreeRTOS中斷設置

    一、FreeRTOS中斷設置介紹 FreeRTOSConfig.h中定義了兩個宏,分別是: configKERNEL_INTERRUPT_PRIORITY
    發表于 11-29 19:46 ?1998次閱讀
     基于STM32應用的<b class='flag-5'>FreeRTOS</b><b class='flag-5'>中斷</b>設置

    介紹什么是中斷定時器?作用是什么?

    lesson7-1中斷定時器
    的頭像 發表于 07-09 03:36 ?8427次閱讀
    介紹什么是<b class='flag-5'>中斷定</b>時器?作用是什么?

    STM32中斷FreeRTOS中斷優先級配置

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

    STM32之FreeRTOS:(一) 中斷配置和臨界段的使用

    API函數1.開關中斷2.臨界段代碼1、taskENTER_CRITICAL()和 taskEXIT_CRITICAL()任務級臨界代碼保護使用方法如下:2.
    發表于 01-14 15:43 ?3次下載
    STM32之<b class='flag-5'>FreeRTOS</b>:(一) <b class='flag-5'>中斷</b>配置和臨界段的使用

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

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