哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

μC/OS-II三種臨界區(qū)管理方式

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

掃碼添加小助手

加入工程師交流群

01

臨界段與臨界資源

操作系統(tǒng)中有有兩個(gè)名詞,臨界段和臨界資源。

01

臨界段

代碼的臨界段也稱為臨界區(qū),指處理時(shí)不可分割的代碼。一旦這部分代碼開(kāi)始執(zhí)行,則不允許任何中斷打入。為確保臨界段代碼的執(zhí)行,在進(jìn)入臨界段之前要關(guān)中斷,而臨界段代碼執(zhí)行完以后要立即開(kāi)中斷。

02

臨界資源

臨界資源在一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程訪問(wèn)的資源。又稱獨(dú)占資源。資源可以是輸入輸出設(shè)備,例如打印機(jī)、鍵盤(pán)、顯示器,資源也可以是一個(gè)變量,一個(gè)結(jié)構(gòu)或一個(gè)數(shù)組等。

02

三種臨界區(qū)管理機(jī)制

2.1

示例代碼

在μC/OS-II中有三種臨界區(qū)管理方式,是在oc_cpu.h文件中通過(guò)宏OS_CRITICAL_METHOD來(lái)控制,如下圖為8086臨界區(qū)實(shí)現(xiàn)方式

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

2.2

PSW(程序狀態(tài)字)

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

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

2.3

方法1

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

但這種方法有一個(gè)隱患,如果在關(guān)閉中斷后調(diào)用μC/OS函數(shù),當(dāng)函數(shù)返回后,中斷將被打開(kāi)!嚴(yán)格意義上的關(guān)閉中斷應(yīng)該是執(zhí)行OS_ENTER_CRITICAL()后中斷始終是關(guān)閉的, 方法1顯然不滿足要求。但方法1的優(yōu)點(diǎn)是簡(jiǎn)單,執(zhí)行速度快(只有一條指令)。

2.4

方法二

OS_ENTER_CRITICAL()會(huì)在關(guān)中斷前保存之前的標(biāo)志寄存器內(nèi)容到堆棧中,隨之將中斷關(guān)閉,OS_EXIT_CRITICAL()從堆棧中恢復(fù)之前保存的狀態(tài)。

PUSHF是將標(biāo)志寄存器入棧,POPF是將棧頂?shù)膬?nèi)容彈出到標(biāo)志寄存器中。

但是一些編譯器不能很好地優(yōu)化內(nèi)聯(lián)代碼,因此,此方法可能無(wú)法正常工作。因?yàn)榫幾g器可能不夠智能,無(wú)法知道堆棧指針已經(jīng)被更改(通過(guò)PUSHF指令),此時(shí)再想去訪問(wèn)堆棧中的數(shù)據(jù)極大可能出現(xiàn)錯(cuò)誤的值,從而導(dǎo)致應(yīng)用程序的崩潰。

2.5

方法三

一些編譯器提供了擴(kuò)展的接口允許用戶獲取PSW中的值,并將此狀態(tài)值保存在聲明的變量中,隨之將中斷關(guān)閉,在退出臨界區(qū)時(shí),在將上面保存的值恢復(fù)到PSW中。

OSCPUSaveSR以及OSCPURestoreSR是在os_cpu_a.s文件中定義的,使用匯編指令實(shí)現(xiàn)的。

這種方法的優(yōu)點(diǎn)就是安全可靠,缺點(diǎn)就是執(zhí)行速度較上面兩種慢,因?yàn)檫M(jìn)入和退出臨界區(qū)的匯編代碼可能不止一條,而且還需要訪問(wèn)內(nèi)存變量cpu_sr。

原文標(biāo)題:μC/OS三種臨界區(qū)管理機(jī)制

文章出處:【微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    22

    文章

    5158

    瀏覽量

    144752
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7433

    瀏覽量

    129602
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4976

    瀏覽量

    74361

原文標(biāo)題:μC/OS三種臨界區(qū)管理機(jī)制

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    AI技術(shù)時(shí)代三種全新工作模式如何實(shí)現(xiàn)

    AI技術(shù)正在重塑我們的工作。前沿企業(yè)以“人類(lèi)主導(dǎo)、智能體運(yùn)營(yíng)”為核心,形成三種AI技術(shù)的融合模式:人類(lèi)+AI技術(shù)助手、人機(jī)混合、人類(lèi)主導(dǎo)智能體運(yùn)營(yíng),這些模式不僅提升效率,更在重構(gòu)協(xié)作方式,幫助組織以更低的阻力邁向成功。
    的頭像 發(fā)表于 01-29 15:08 ?731次閱讀

    C語(yǔ)言的緩沖區(qū)(緩存)詳解

    能夠協(xié)調(diào)工作,避免低速的輸入輸出設(shè)備占用CPU,解放出CPU,使其能夠高效率工作。   緩沖區(qū)的類(lèi)型   緩沖區(qū) 分為三種類(lèi)型:全緩沖、行緩沖和不帶緩沖。   1) 全緩沖   在這種情況下,當(dāng)
    發(fā)表于 01-14 07:30

    C語(yǔ)言中實(shí)現(xiàn)函數(shù)宏的三種方式

    在宏的第一個(gè)分號(hào)后便結(jié)束。即 a = b 和 b = tmp 均不受控制語(yǔ)句所作用。 因此,在工程中,一般使用三種方式來(lái)對(duì)函數(shù)宏進(jìn)行封裝,分別為 {}、do{...}while(0
    發(fā)表于 12-29 07:34

    請(qǐng)問(wèn)CW32芯片的三種工作模式是什么?

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

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

    AWS 條款)。 uC/OS-II: 核心功能: 任務(wù)調(diào)度(固定優(yōu)先級(jí)搶占式 + 時(shí)間片輪詢)、信號(hào)量、互斥鎖(帶優(yōu)先級(jí)繼承)、消息郵箱、消息隊(duì)列、事件標(biāo)志、內(nèi)存分區(qū)管理、軟件定時(shí)器。 內(nèi)存管理
    發(fā)表于 11-17 08:17

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

    /OS-II: 你非常熟悉 Jean Labrosse 的書(shū)或其設(shè)計(jì)理念。 你在維護(hù)一個(gè)歷史悠久的、基于 uC/OS-II 的項(xiàng)目。 你的應(yīng)用對(duì)極端可靠性和確定性有非常高的要求(其嚴(yán)謹(jǐn)?shù)脑O(shè)計(jì)和歷史認(rèn)證背景
    發(fā)表于 11-13 07:15

    伺服電機(jī)的三種制動(dòng)方式有什么區(qū)別?

    伺服電機(jī)作為自動(dòng)化控制系統(tǒng)中執(zhí)行元件的核心部件,其制動(dòng)性能直接影響設(shè)備的定位精度和安全可靠性。目前主流的伺服電機(jī)制動(dòng)方式包括動(dòng)態(tài)制動(dòng)、再生制動(dòng)和電磁機(jī)械制動(dòng)三種,它們?cè)谥苿?dòng)原理、應(yīng)用場(chǎng)景及技術(shù)特點(diǎn)上
    的頭像 發(fā)表于 09-19 18:26 ?2173次閱讀
    伺服電機(jī)的<b class='flag-5'>三種</b>制動(dòng)<b class='flag-5'>方式</b>有什么區(qū)別?

    rtt使用的軟件i2c庫(kù)進(jìn)行模擬i2c時(shí)序時(shí),不需要加臨界區(qū)保護(hù)嗎?

    這里進(jìn)行模擬i2c時(shí)序,不需要加臨界區(qū)的保護(hù)。假如我有一個(gè)低優(yōu)先級(jí)的線程正在進(jìn)行i2c讀寫(xiě),這時(shí)候有個(gè)高優(yōu)先級(jí)的線程進(jìn)行搶占,做了一些工作,這個(gè)時(shí)候i2
    發(fā)表于 09-10 08:09

    對(duì)于CYUSB3014芯片,哪個(gè)函數(shù)可以讀取GPIF II端DMA緩沖區(qū)中緩存的實(shí)際數(shù)據(jù)量?

    你好! 我們使用的芯片是CYUSB3014,使用方式為:生產(chǎn)端使用GPIF II接口,消費(fèi)端使用USB接口,數(shù)據(jù)從外部FPGA進(jìn)入GPIF II接口,再通過(guò)USB3.0接口發(fā)送給電腦軟件。請(qǐng)問(wèn)
    發(fā)表于 07-21 07:27

    MEMS中的三種測(cè)溫方式

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

    1553B總線常見(jiàn)三種組網(wǎng)方式

    1553B總線作為航空電子系統(tǒng)中的關(guān)鍵通信協(xié)議,其組網(wǎng)方式直接影響系統(tǒng)的可靠性和實(shí)時(shí)性。本文將深入解析1553B總線的三種典型組網(wǎng)結(jié)構(gòu):?jiǎn)慰偩€結(jié)構(gòu)、雙冗余總線和多總線分層架構(gòu),并結(jié)合實(shí)際應(yīng)用場(chǎng)景分析
    的頭像 發(fā)表于 06-21 17:39 ?2405次閱讀
    1553B總線常見(jiàn)<b class='flag-5'>三種</b>組網(wǎng)<b class='flag-5'>方式</b>

    開(kāi)關(guān)電源三種控制模式:PWM/PFM/PSM

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

    HarmonyOS基礎(chǔ)組件:Button三種類(lèi)型的使用

    中的Button相較于Android原生來(lái)說(shuō),功能比較豐富,擴(kuò)展性高,減少了開(kāi)發(fā)者的代碼數(shù)量,簡(jiǎn)化了使用方式。不僅可以自定義圓角還支持三種樣式。 常用屬性 名稱 參數(shù)類(lèi)型 描述 type
    的頭像 發(fā)表于 06-09 15:48 ?2703次閱讀
    HarmonyOS基礎(chǔ)組件:Button<b class='flag-5'>三種</b>類(lèi)型的使用

    CH32F103C8T6核心板三種程序下載方式簡(jiǎn)介

    CH32F103C8T6核心板,通過(guò)USB轉(zhuǎn)串口方式、USB直連方式、SWD方式下載應(yīng)用程序
    的頭像 發(fā)表于 06-09 09:38 ?1258次閱讀
    CH32F103<b class='flag-5'>C</b>8T6核心板<b class='flag-5'>三種</b>程序下載<b class='flag-5'>方式</b>簡(jiǎn)介

    介紹三種常見(jiàn)的MySQL高可用方案

    在生產(chǎn)環(huán)境中,為了確保數(shù)據(jù)庫(kù)系統(tǒng)的連續(xù)可用性、降低故障恢復(fù)時(shí)間以及實(shí)現(xiàn)業(yè)務(wù)的無(wú)縫切換,高可用(High Availability, HA)方案至關(guān)重要。本文將詳細(xì)介紹三種常見(jiàn)的 MySQL 高可用
    的頭像 發(fā)表于 05-28 17:16 ?1431次閱讀
    长春市| 江阴市| 全南县| 潜山县| 临潭县| 宝坻区| 沽源县| 阿坝| 木里| 广汉市| 南华县| 五指山市| 邯郸县| 大兴区| 阿克| 台湾省| 绥芬河市| 泰来县| 宣化县| 望都县| 随州市| 磐石市| 神农架林区| 龙里县| 丰城市| 平乡县| 石屏县| 全椒县| 兴业县| 九龙坡区| 将乐县| 裕民县| 卢氏县| 灵石县| 松溪县| 图木舒克市| 周至县| 泰州市| 瓮安县| 富锦市| 黑龙江省|