最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

14.1異常與中斷_概念引入與處理流程

2020-08-23 11:19 作者:韋東山  | 我要投稿

取個場景解釋中斷。

假設有個大房間里面有小房間,嬰兒正在睡覺,他的媽媽在外面看書。

問:這個母親怎么才能知道這個小孩醒?

  1. 過一會打開一次房門,看嬰兒是否睡醒,讓后接著看書

  2. 一直等到嬰兒發(fā)出聲音以后再過去查看,期間都在讀書

第一種 叫做查詢方式

  • 優(yōu)點:簡單

  • 缺點: 累

寫程序如何:?

第二種叫中斷方式

  • 優(yōu)點:不累

  • 缺點:復雜

寫程序:?

我們看看母親被小孩哭聲打斷如何照顧小孩?

母親的處理過程:

1 平時看書

2 發(fā)生了各種聲音,如何處理這些聲音

  • 有遠處的貓叫(聽而不聞,忽略)

  • 門鈴聲有快遞(開門收快遞)

  • 小孩哭聲(打開房門,照顧小孩)

3 母親的處理

  • 只會處理門鈴聲和小孩哭聲

  • a 現在書中放入書簽,合上書(保存現場)

  • b 去處理 (調用對應的中斷服務程序)

  • c 繼續(xù)看書(恢復現場)

不同情況,不同處理:

a 對于門鈴:開門取快件

b 對于哭聲:照顧小孩


我們將母親的處理過程抽象化——母親的頭腦相當于CPU

耳朵聽到聲音會發(fā)送信號給腦袋,聲音來源有很多種,有遠處的貓叫,門鈴聲,小孩哭聲。這些聲音傳入耳朵,再由耳朵傳給大腦,除了這些可以中斷母親的看書,還有其他情況,比如身體不舒服,有只蜘蛛掉下來,對于特殊情況無法回避,必須立即處理


對比我們的arm系統?

有CPU,有中斷控制器。

中斷控制器可以發(fā)信號給CPU告訴它發(fā)生了那些緊急情況

中斷源有按鍵、定時器、有其它的(比如網絡數據)

這些信號都可以發(fā)送信號給中斷控制器,再由中斷控制器發(fā)送信號給CPU表明有這些中斷產生了,這些成為中斷(屬于一種異常)


還有什么可以中斷CPU運行?

指令不對,數據訪問有問題

reset信號,這些都可以中斷CPU 這些成為異常中斷


重點在于保存現場以及恢復現場


處理過程

a 保存現場(各種寄存器)

b 處理異常(中斷屬于一種異常)

c 恢復現場


arm對異常(中斷)處理過程

1 初始化:

  • a 設置中斷源,讓它可以產生中斷

  • b 設置中斷控制器(可以屏蔽某個中斷,優(yōu)先級)

  • c 設置CPU總開關,(使能中斷)

2 執(zhí)行其他程序:正常程序

3 產生中斷:按下按鍵--->中斷控制器--->CPU

4 cpu每執(zhí)行完一條指令都會檢查有無中斷/異常產生

5 發(fā)現有中斷/異常產生,開始處理。對于不同的異常,跳去不同的地址執(zhí)行程序。這地址上,只是一條跳轉指令,跳去執(zhí)行某個函數(地址),這個就是異常向量。如下就是異常向量表,對于不同的異常都有一條跳轉指令。?

(3-5都是硬件強制做的)

6 這些函數做什么事情?

軟件做的:

a 保存現場(各種寄存器)

b 處理異常(中斷):

b1分辨中斷源

b2再調用不同的處理函數

c 恢復現場

對比母親的處理過程來比較arm中斷的處理過程。


中斷處理程序怎么被調用?

CPU--->0x18 --跳轉到其他函數->

  • 做保護現場

  • 調用函數

  • 分辨中斷源

  • 調用對應函數

  • 恢復現場

cpu到0x18是由硬件決定的,跳去執(zhí)行更加復雜函數(由軟件決定)?


14.1異常與中斷_概念引入與處理流程的評論 (共 條)

分享到微博請遵守國家法律
西峡县| 乐山市| 探索| 东兴市| 荥经县| 茂名市| 准格尔旗| 澳门| 东源县| 高青县| 延安市| 瑞丽市| 杂多县| 弥渡县| 保康县| 岱山县| 乌海市| 临洮县| 海南省| 突泉县| 洛南县| 洛阳市| 灵丘县| 泸西县| 茶陵县| 东光县| 江川县| 顺昌县| 大埔区| 团风县| 红桥区| 宜阳县| 金昌市| 大丰市| 江油市| 饶阳县| 镇平县| 荣昌县| 板桥市| 江西省| 恩平市|