最近2019年日本中文字幕免费,亚洲色久悠悠av在线观看,蜜桃成人无码区免费视频网站,秋霞鲁丝片成人无码

你的位置:首頁 > 互連技術 > 正文

微控制器和嵌入式系統(tǒng)中的并發(fā)和中斷

發(fā)布時間:2023-04-21 責任編輯:lina

【導讀】通常,我們只對與我們正在處理的過程相關的特定事件感興趣。正如您在上面注意到的,從時間的角度來看,我們關心的事件是是否該起床了。處理并發(fā)的典型方法是讓另一個物理資源(鬧鐘或人)監(jiān)視我們感興趣的事件,然后提醒(或打斷)我們事件已經(jīng)發(fā)生的事實,以便我們可以處理它。


本文是探討并發(fā)和中斷概念的系列文章中的篇。本系列的大部分內(nèi)容將直接處理微控制器和 GPIO 中斷。

在初的這篇文章中,我們將討論這些概念的基本定義,并考慮它們與為微控制器編寫代碼的相關性。

什么是并發(fā)?

讓我們用一個我們都熟悉的例子來談談并發(fā)。通常,當您上床睡覺時,您想在特定時間醒來。你在這里有兩個目標:上床睡覺,這樣你就可以休息,但也要確保你不會睡到你想要的起床時間。 

確保您不會錯過起床時間的一種方法是保持清醒并看時鐘,但這會破壞您想要上床睡覺的目的。為了幫助補救這個問題,我們通常使用鬧鐘(一個設備或受信任的人,到那時已經(jīng)醒了)在特定時間叫醒我們,這樣我們就可以專注于睡眠,同時仍然實現(xiàn)我們的目標時間。

并發(fā)性是我們用來描述您同時處理兩個或多個進程但在任何時間點只能物理處理其中一個進程的能力的場景。 

在上面的示例中,要注意的兩個過程是睡眠和跟蹤時間(因此我們會在所需時間醒來)。同一個人同時做這兩件事在物理上是不可能的。 

通常,我們只對與我們正在處理的過程相關的特定事件感興趣。正如您在上面注意到的,從時間的角度來看,我們關心的事件是是否該起床了。處理并發(fā)的典型方法是讓另一個物理資源(鬧鐘或人)監(jiān)視我們感興趣的事件,然后提醒(或打斷)我們事件已經(jīng)發(fā)生的事實,以便我們可以處理它。

圖 1 顯示了這方面的時間線圖解。


微控制器和嵌入式系統(tǒng)中的并發(fā)和中斷
圖 1.上床睡覺并讓鬧鐘在特定時間叫醒您的時間線圖示。


嵌入式和網(wǎng)絡物理系統(tǒng)中的并發(fā) 

嵌入式和網(wǎng)絡物理系統(tǒng)通常必須處理并發(fā)性。 

這個概念的一個例子是微波爐。該設備需要能夠處理按鈕按下或檢測您在食物加熱時打開門的時間。按下暫?;蛉∠粹o或打開門將導致食物停止加熱。 

微控制器——您通常將其編程為系統(tǒng)“大腦”的計算機——在設計時就考慮到了并發(fā)性。

除了通用 CPU 之外,它們還包含許多用于與外界交互的專用硬件設備(稱為外圍設備),因此您可以連接諸如按鈕和顯示器之類的東西以及實現(xiàn)系統(tǒng)所需的其他外部硬件。通常,這些外設具有中斷機制,因此 CPU 可以要求它們監(jiān)視特定事件,然后在該事件發(fā)生時中斷 CPU。

中斷和并發(fā)程序的概述

微控制器上的中斷就像我之前討論的睡眠和鬧鐘示例一樣工作。 

您可以編寫一個程序,將外設配置為監(jiān)視某個事件并在該事件發(fā)生時中斷 CPU——例如,當 GPIO 輸入值從 0 變?yōu)?1 時。當您的程序運行時,CPU 會執(zhí)行您的程序片段主程序。當您等待的事件發(fā)生時,外圍設備向 CPU 發(fā)出事件已經(jīng)發(fā)生的信號。如果一切配置正確,CPU 將停止它在主程序中所做的任何事情,執(zhí)行一個稱為中斷服務例程 (ISR) 或中斷處理程序的特殊函數(shù),然后返回主程序從中斷的地方繼續(xù)當它完成時。 

您必須將 ISR 編寫為代碼的一部分。假設您正在使用 C 編寫程序,這意味著您必須在源代碼中的某處聲明和定義它,該源代碼將作為微控制器將運行的可執(zhí)行文件的一部分構建。

但是,您永遠不會自己調(diào)用 ISR。所有微控制器開發(fā)工具都有一種特定的方式讓您告訴 C 編譯器某個函數(shù)是 ISR 以及它與哪個特定中斷相關聯(lián)。正確完成此操作后,當特定中斷發(fā)生時,CPU 將自動跳轉(zhuǎn)到該函數(shù)并執(zhí)行它。 

C 代碼中的中斷示例

由于中斷的工作方式,一開始在編程中處理并發(fā)似乎有點不直觀。

下圖展示了用 C 語言編寫的具有 ISR 的代碼將如何運行,以幫助提供一種思考并發(fā)程序的好方法。它假定所有中斷配置都已正確完成。


微控制器和嵌入式系統(tǒng)中的并發(fā)和中斷
圖 2.帶有中斷的 C 代碼


CPU 在 main 函數(shù)的 while 循環(huán)中執(zhí)行代碼。
感興趣的事件(從 1 變?yōu)?0)發(fā)生在為中斷配置的引腳上。
CPU停止執(zhí)行while循環(huán)中的代碼,轉(zhuǎn)而執(zhí)行中斷服務程序。
中斷服務程序執(zhí)行完畢后,CPU 從中斷處繼續(xù)執(zhí)行主循環(huán)。
CPU 正在 while 循環(huán)中執(zhí)行代碼。
感興趣的事件再次發(fā)生。
CPU停止執(zhí)行while循環(huán)中的代碼,轉(zhuǎn)而執(zhí)行中斷服務程序。
中斷服務程序執(zhí)行完畢后,CPU 從中斷處繼續(xù)執(zhí)行主循環(huán)。

外圍設備和 GPIO 的中斷

本系列的大部分內(nèi)容都集中在微控制器的并發(fā)和中斷概念上。接下來,我們將討論GPIO 中斷及其工作原理。 


免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯(lián)系小編進行處理。


推薦閱讀:

??低暟l(fā)布2022年ESG報告:科技為善,助力可持續(xù)的美好未來

如何設計簡單的電壓控制雙向電流源

運算放大器的8種應用電路,您都了解嗎?

打開信號繼電器的正確方式

輕量級的電源系統(tǒng),該如何設計?


特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉

欧美97色伦欧美一区二区日韩| 我偷偷跟亲妺作爱h在线观看| 奇米777狠狠888俺也去| 国产99久久精品一区二区| 久久久久国產麻豆无碼av| 奇米777狠狠888俺也去| 人妻日本无中文字幕无码| 精品亚洲欧美无人区乱码| 久久人人爽天天玩人人妻精品 | 精品无人区无码乱码av片国产| 久久天天躁狠狠躁夜夜躁2014| 18禁女子裸体露私密照无遮挡 | 精品无人国产偷自产在线| 美妙人妇系列1~100| 国产激情精品一区二区三区 | 久久国产avjust麻豆| 在电影院里拨开内裤挺进| 18禁老湿机体验区试看120秒| 亚洲国产精品无码中文字| 青青河边草中文字幕mv| 久久久精品欧美一区二区三区| 天下第一日本www视频| 国产精品爽爽v在线观看无码| 亚洲区小说区图片区qvod| 老太做爰xxxx| 亚洲国产精品久久久久久久| 内衣办公室1~3卷翻译樱花| 亚洲一线产区和二线产区区别| 荷兰女人裸体性做爰| 啊灬啊灬啊灬快灬高潮了听书| 久久久精品人妻一区二区三区四| 白袜校草被小混混脱裤玩j| 善良的小峓子hd完整视频中文| 亚洲精品乱码久久久久久蜜桃不卡| 我高潮太爽忍不住大叫怎么办| 狠狠综合久久av一区二区| GOGOGO大但人文艺术包子铺| 老熟妇仑乱视频一区二区| 人性情感短片视频高清| 含着jing液去上课h男男| japanese熟睡侵犯|