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

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

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

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

RT-Thread入門學(xué)習(xí)筆記-熟悉全局中斷的操作

冬至子 ? 來(lái)源:張世爭(zhēng) ? 作者:張世爭(zhēng) ? 2023-06-07 14:58 ? 次閱讀

前言

RT-Thread中,全局中斷的操作很多,大家都知道全局中斷的【disable】與【enable】

需要正確的理解全局中斷的disable與enable。

如下,保證鏈表的正確操作,【中斷保護(hù)】

/* lock interrupt */
temp = rt_hw_interrupt_disable();
/* remove from old list */
rt_list_remove(&(object- >list));
/* unlock interrupt */
rt_hw_interrupt_enable(temp);

問(wèn)題與分析:

rt_hw_interrupt_disable后,就無(wú)法觸發(fā)中斷了嗎?

經(jīng)過(guò)實(shí)際的驗(yàn)證,與分析rt_hw_interrupt_disable的實(shí)現(xiàn)方法:得到如下結(jié)論:

rt_hw_interrupt_disable 只是屏蔽了全局【中斷請(qǐng)求】,配置使能的中斷,依舊可以【中斷】,只是,中斷處理函數(shù)ISR,暫不執(zhí)行。

也就是說(shuō),如果硬件配置使能了中斷,rt_hw_interrupt_disable 后,依舊具備【中斷】功能。如你配置一個(gè)GPIO外部中斷,并使能中斷。rt_hw_interrupt_disable 后,外部中斷可以產(chǎn)生,只是不觸發(fā)執(zhí)行【ISR】。

【重點(diǎn)】:當(dāng)rt_hw_interrupt_disable 后,觸發(fā)的中斷,ISR暫時(shí)無(wú)法執(zhí)行,但硬件正常置【pending】中斷標(biāo)志位。

當(dāng)rt_hw_interrupt_enable后,【pending】的中斷,會(huì)執(zhí)行中斷【ISR】處理程序。

概念的梳理

單個(gè)中斷的產(chǎn)生:配置使能硬件中斷,如按鍵,GPIO外部中斷,按下觸發(fā)中斷,硬件置【pending】中斷標(biāo)志位,并執(zhí)行中斷【ISR】

單個(gè)中斷的禁止:配置禁能硬件中斷,如按鍵,按下不再觸發(fā)中斷。即使有【ISR】中斷處理函數(shù),不會(huì)執(zhí)行。

全局中斷的禁止:也就是不再觸發(fā)任何物理中斷,【沒(méi)找到這個(gè)功能函數(shù)】!

全局中斷請(qǐng)求的屏蔽:rt_hw_interrupt_disable,觸發(fā)的中斷,只能置【pending】中斷標(biāo)志位,CPU繼續(xù)執(zhí)行操作。

互斥或是臨界值的操作,可以使用屏蔽全局中斷請(qǐng)求+處理+打開(kāi)全局中斷請(qǐng)求的方式,讓操作獨(dú)占的方式完成操作。

梳理RT-Thread PM中睡眠流程

睡眠操作執(zhí)行在:idle線程(最低線程優(yōu)先級(jí))

進(jìn)入SLEEP前,是禁止全局中斷請(qǐng)求的!rt_hw_interrupt_disable

睡眠前的引腳處理等,進(jìn)入睡眠,CPU停止運(yùn)行,【凍結(jié)】在這里!!

睡眠過(guò)程中,依舊可以被【使能的中斷】,如按鍵GPIO外部中斷、LPTimer等觸發(fā)并喚醒CPU。

CPU喚醒后,繼續(xù)下一條操作,【睡眠后的處理】

PM退出睡眠,開(kāi)啟全局中斷請(qǐng)求rt_hw_interrupt_enable,此時(shí),開(kāi)啟響應(yīng)中斷ISR。

根據(jù)中斷【pending】標(biāo)志位,進(jìn)入喚醒中斷處理函數(shù)【ISR】并執(zhí)行。

如此,深睡眠時(shí),系統(tǒng)時(shí)鐘停了,引腳關(guān)了,喚醒時(shí),恢復(fù)時(shí)鐘與引腳即可!【睡眠整個(gè)流程是完整的】

不用擔(dān)心會(huì)被中斷切出去,甚至任務(wù)切換,造成系統(tǒng)運(yùn)行在錯(cuò)誤的時(shí)鐘下。

不用擔(dān)心關(guān)閉了全局中斷請(qǐng)求,按鍵、LPTimer等,無(wú)法觸發(fā)中斷,喚醒MCU

1.jpg

總結(jié)

需要正確的理解中斷的觸發(fā)及執(zhí)行流程

正確的理解RT-Thead 全局中斷的操作:rt_hw_interrupt_disable 與 rt_hw_interrupt_enable.

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1176

    瀏覽量

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

    關(guān)注

    0

    文章

    38

    瀏覽量

    14360
  • 外部中斷
    +關(guān)注

    關(guān)注

    1

    文章

    131

    瀏覽量

    15739
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1239

    瀏覽量

    39445
  • MCU芯片
    +關(guān)注

    關(guān)注

    3

    文章

    244

    瀏覽量

    11258
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RT-Thread學(xué)習(xí)筆記】使用scons命令生成靜態(tài)庫(kù)

    RT-Thread學(xué)習(xí)筆記】如何使用scons 命令中buildlib的生成靜態(tài)庫(kù)?
    的頭像 發(fā)表于 07-27 09:13 ?5589次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】使用scons命令生成靜態(tài)庫(kù)

    RT-Thread內(nèi)核對(duì)象操作API詳解

    目的還是學(xué)習(xí)熟悉RT-Thread 操作系統(tǒng)。
    發(fā)表于 06-02 09:48 ?438次閱讀
    <b class='flag-5'>RT-Thread</b>內(nèi)核對(duì)象<b class='flag-5'>操作</b>API詳解

    RT-Thread Nano入門學(xué)習(xí)筆記

    RT-Thread Nano入門學(xué)習(xí)筆記
    發(fā)表于 11-26 12:36 ?20次下載
    <b class='flag-5'>RT-Thread</b> Nano<b class='flag-5'>入門</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 理解defunct僵尸線程

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象rt_objectRT-Thread 內(nèi)核學(xué)習(xí)筆記
    發(fā)表于 01-25 18:19 ?8次下載
    <b class='flag-5'>RT-Thread</b> 內(nèi)核<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> - 理解defunct僵尸線程

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 設(shè)備模型rt_device的理解

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象rt_objectRT-Thread 內(nèi)核學(xué)習(xí)筆記
    發(fā)表于 01-25 18:19 ?8次下載
    <b class='flag-5'>RT-Thread</b> 內(nèi)核<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> - 設(shè)備模型<b class='flag-5'>rt</b>_device的理解

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象鏈表結(jié)構(gòu)深入理解

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象rt_objectRT-Thread 內(nèi)核學(xué)習(xí)筆記
    發(fā)表于 01-25 18:23 ?6次下載
    <b class='flag-5'>RT-Thread</b> 內(nèi)核<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> - 內(nèi)核對(duì)象鏈表結(jié)構(gòu)深入理解

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象初始化鏈表組織方式

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象rt_objectRT-Thread 內(nèi)核學(xué)習(xí)筆記
    發(fā)表于 01-25 18:24 ?3次下載
    <b class='flag-5'>RT-Thread</b> 內(nèi)核<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> - 內(nèi)核對(duì)象初始化鏈表組織方式

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象操作API

    RT-Thread 內(nèi)核學(xué)習(xí)筆記 - 內(nèi)核對(duì)象rt_objectRT-Thread 內(nèi)核學(xué)習(xí)筆記
    發(fā)表于 01-25 18:26 ?7次下載
    <b class='flag-5'>RT-Thread</b> 內(nèi)核<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> - 內(nèi)核對(duì)象<b class='flag-5'>操作</b>API

    RT-Thread學(xué)習(xí)筆記分享

    我是從2020年11月初開(kāi)始學(xué)習(xí)RT-Thread實(shí)時(shí)操作系統(tǒng)的,在學(xué)習(xí)RT-Thread之前,我接觸過(guò)uCOS和FreeRTOS,但這兩個(gè)
    的頭像 發(fā)表于 01-27 18:52 ?1999次閱讀

    RT-Thread學(xué)習(xí)筆記 RT-Thread的架構(gòu)概述

    的種種優(yōu)越之處。RT-Thread 是一款完全由國(guó)內(nèi)團(tuán)隊(duì)開(kāi)發(fā)維護(hù)的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),具有完全的自主知識(shí)產(chǎn)權(quán)。經(jīng)過(guò) 16 個(gè)年頭的沉淀,伴隨著物聯(lián)網(wǎng)的興起,它正演變成一個(gè)功能強(qiáng)大、組件豐富的物
    的頭像 發(fā)表于 07-09 11:27 ?4321次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b> <b class='flag-5'>RT-Thread</b>的架構(gòu)概述

    RT-Thread學(xué)習(xí)筆記】Makefile的FORCE

    RT-Thread學(xué)習(xí)筆記】十分鐘學(xué)會(huì)Makefile的FORCE
    的頭像 發(fā)表于 07-30 13:55 ?2167次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】Makefile的FORCE

    RT-Thread學(xué)習(xí)筆記】如何抓取終端的網(wǎng)絡(luò)報(bào)文

    RT-Thread學(xué)習(xí)筆記】如何抓取終端的網(wǎng)絡(luò)報(bào)文?
    的頭像 發(fā)表于 07-30 13:57 ?2561次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】如何抓取終端的網(wǎng)絡(luò)報(bào)文

    RT-Thread學(xué)習(xí)筆記】用memwatch排除內(nèi)存泄露

    RT-Thread學(xué)習(xí)筆記】使用memwatch排除內(nèi)存泄露
    的頭像 發(fā)表于 07-30 14:01 ?2062次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】用memwatch排除內(nèi)存泄露

    RT-Thread文檔_中斷管理

    RT-Thread文檔_中斷管理
    發(fā)表于 02-22 18:30 ?1次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>中斷</b>管理

    基于RT-Thread Studio學(xué)習(xí)

    前期準(zhǔn)備:從官網(wǎng)下載 RT-Thread Studio,弄個(gè)賬號(hào)登陸,開(kāi)啟rt-thread學(xué)習(xí)之旅。
    的頭像 發(fā)表于 05-15 11:00 ?3505次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio<b class='flag-5'>學(xué)習(xí)</b>