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

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

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

3天內不再提示

μC/OS-II三種臨界區管理方式

GReq_mcu168 ? 來源:typedef ? 作者:typedef ? 2022-07-11 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01

臨界段與臨界資源

操作系統中有有兩個名詞,臨界段和臨界資源。

01

臨界段

代碼的臨界段也稱為臨界區,指處理時不可分割的代碼。一旦這部分代碼開始執行,則不允許任何中斷打入。為確保臨界段代碼的執行,在進入臨界段之前要關中斷,而臨界段代碼執行完以后要立即開中斷。

02

臨界資源

臨界資源在一段時間內只允許一個進程訪問的資源。又稱獨占資源。資源可以是輸入輸出設備,例如打印機、鍵盤、顯示器,資源也可以是一個變量,一個結構或一個數組等。

02

三種臨界區管理機制

2.1

示例代碼

在μC/OS-II中有三種臨界區管理方式,是在oc_cpu.h文件中通過宏OS_CRITICAL_METHOD來控制,如下圖為8086臨界區實現方式

ce86d1f6-00bb-11ed-ba43-dac502259ad0.png

2.2

PSW(程序狀態字)

不管是何種芯片,進入臨界區的思想是不變的,就是失能控制PSW(Program Status Word)中的IF(中斷標志位)標志位。8086的標志寄存器如下圖所示。不同芯片的PSW略微不同。

ce9b1d14-00bb-11ed-ba43-dac502259ad0.png

2.3

方法1

方法1是直接將OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()定義為處理器的關閉(CLI)和打開(STI)中斷指令。STI(Set Interrupt) 為開中斷,CLI(Clear Interrupt) 為關中斷,這里設置的是PSW(Program Status Word)中的中斷標志位。

但這種方法有一個隱患,如果在關閉中斷后調用μC/OS函數,當函數返回后,中斷將被打開!嚴格意義上的關閉中斷應該是執行OS_ENTER_CRITICAL()后中斷始終是關閉的, 方法1顯然不滿足要求。但方法1的優點是簡單,執行速度快(只有一條指令)。

2.4

方法二

OS_ENTER_CRITICAL()會在關中斷前保存之前的標志寄存器內容到堆棧中,隨之將中斷關閉,OS_EXIT_CRITICAL()從堆棧中恢復之前保存的狀態。

PUSHF是將標志寄存器入棧,POPF是將棧頂的內容彈出到標志寄存器中。

但是一些編譯器不能很好地優化內聯代碼,因此,此方法可能無法正常工作。因為編譯器可能不夠智能,無法知道堆棧指針已經被更改(通過PUSHF指令),此時再想去訪問堆棧中的數據極大可能出現錯誤的值,從而導致應用程序的崩潰。

2.5

方法三

一些編譯器提供了擴展的接口允許用戶獲取PSW中的值,并將此狀態值保存在聲明的變量中,隨之將中斷關閉,在退出臨界區時,在將上面保存的值恢復到PSW中。

OSCPUSaveSR以及OSCPURestoreSR是在os_cpu_a.s文件中定義的,使用匯編指令實現的。

這種方法的優點就是安全可靠,缺點就是執行速度較上面兩種慢,因為進入和退出臨界區的匯編代碼可能不止一條,而且還需要訪問內存變量cpu_sr。

原文標題:μC/OS三種臨界區管理機制

文章出處:【微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

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

    關注

    22

    文章

    5146

    瀏覽量

    144396
  • 操作系統
    +關注

    關注

    37

    文章

    7402

    瀏覽量

    129301
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73968

原文標題:μC/OS三種臨界區管理機制

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    C語言中實現函數宏的三種方式

    在宏的第一個分號后便結束。即 a = b 和 b = tmp 均不受控制語句所作用。 因此,在工程中,一般使用三種方式來對函數宏進行封裝,分別為 {}、do{...}while(0
    發表于 12-29 07:34

    請問CW32芯片的三種工作模式是什么?

    CW32芯片的三種工作模式是什么?
    發表于 12-26 06:48

    FreeRTOS和uC/OS-II的功能特性

    AWS 條款)。 uC/OS-II: 核心功能: 任務調度(固定優先級搶占式 + 時間片輪詢)、信號量、互斥鎖(帶優先級繼承)、消息郵箱、消息隊列、事件標志、內存分區管理、軟件定時器。 內存管理
    發表于 11-17 08:17

    FreeRTOS與uC/OS-II如何選擇?

    /OS-II: 你非常熟悉 Jean Labrosse 的書或其設計理念。 你在維護一個歷史悠久的、基于 uC/OS-II 的項目。 你的應用對極端可靠性和確定性有非常高的要求(其嚴謹的設計和歷史認證背景
    發表于 11-13 07:15

    伺服電機的三種制動方式有什么區別?

    伺服電機作為自動化控制系統中執行元件的核心部件,其制動性能直接影響設備的定位精度和安全可靠性。目前主流的伺服電機制動方式包括動態制動、再生制動和電磁機械制動三種,它們在制動原理、應用場景及技術特點上
    的頭像 發表于 09-19 18:26 ?1758次閱讀
    伺服電機的<b class='flag-5'>三種</b>制動<b class='flag-5'>方式</b>有什么區別?

    rtt使用的軟件i2c庫進行模擬i2c時序時,不需要加臨界保護嗎?

    這里進行模擬i2c時序,不需要加臨界的保護。假如我有一個低優先級的線程正在進行i2c讀寫,這時候有個高優先級的線程進行搶占,做了一些工作,這個時候i2
    發表于 09-10 08:09

    MEMS中的三種測溫方式

    在集成MEMS芯片的環境溫度測量領域,熱阻、熱電堆和PN結原理是三種主流技術。熱阻是利用熱敏電阻,如金屬鉑或注入硅的溫度電阻系數恒定,即電阻隨溫度線性變化的特性測溫,電阻變化直接對應絕對溫度,需恒流源供電。
    的頭像 發表于 07-16 13:58 ?1667次閱讀
    MEMS中的<b class='flag-5'>三種</b>測溫<b class='flag-5'>方式</b>

    1553B總線常見三種組網方式

    1553B總線作為航空電子系統中的關鍵通信協議,其組網方式直接影響系統的可靠性和實時性。本文將深入解析1553B總線的三種典型組網結構:單總線結構、雙冗余總線和多總線分層架構,并結合實際應用場景分析
    的頭像 發表于 06-21 17:39 ?1934次閱讀
    1553B總線常見<b class='flag-5'>三種</b>組網<b class='flag-5'>方式</b>

    開關電源三種控制模式:PWM/PFM/PSM

    摘要 本文詳細介紹了開關電源的三種主要調制方式:PWM(脈沖寬度調制)、PFM(脈沖頻率調制)和PSM(脈沖跨周期調制)。PWM通過調整脈沖寬度保持恒定頻率,適用于重負載,但輕負載效率低。PFM則在
    發表于 06-09 16:11

    CH32F103C8T6核心板三種程序下載方式簡介

    CH32F103C8T6核心板,通過USB轉串口方式、USB直連方式、SWD方式下載應用程序
    的頭像 發表于 06-09 09:38 ?1057次閱讀
    CH32F103<b class='flag-5'>C</b>8T6核心板<b class='flag-5'>三種</b>程序下載<b class='flag-5'>方式</b>簡介

    介紹三種常見的MySQL高可用方案

    在生產環境中,為了確保數據庫系統的連續可用性、降低故障恢復時間以及實現業務的無縫切換,高可用(High Availability, HA)方案至關重要。本文將詳細介紹三種常見的 MySQL 高可用
    的頭像 發表于 05-28 17:16 ?1240次閱讀

    信號隔離器三種供電方式的區別

    信號隔離器是一重要的信號隔離裝置,其供電方式主要有獨立供電、回路供電和輸出回路供電三種。以下是這三種供電方式的詳細區別: 一、獨立供電 1
    的頭像 發表于 04-17 16:23 ?1543次閱讀
    信號隔離器<b class='flag-5'>三種</b>供電<b class='flag-5'>方式</b>的區別

    redis三種集群方案詳解

    在Redis中提供的集群方案總共有三種(一般一個redis節點不超過10G內存)。
    的頭像 發表于 03-31 10:46 ?1533次閱讀
    redis<b class='flag-5'>三種</b>集群方案詳解

    GaN、超級SI、SiC這三種MOS器件的用途區別

    如果想要說明白GaN、超級SI、SiC這三種MOS器件的用途區別,首先要做的是搞清楚這三種功率器件的特性,然后再根據材料特性分析具體應用。
    的頭像 發表于 03-14 18:05 ?2722次閱讀

    FOC中的三種電流采樣方式,你真的會選擇嗎?(可下載)

    的基礎,用一句話來形容就是“基礎不對,努力白費”,由此可見電流采樣在整 個 FOC 算法中的作用電流采樣的方式一般分為電阻、雙電阻、單電阻,這三種采樣方式都有其
    發表于 03-12 15:04 ?4次下載