大多數的嵌入式處理器會提供例外(exception)和中斷(interrupt)這兩個功能,允許處理器去中斷異常的狀況,這些異常的狀況,有可能是軟體、程式設計錯誤、外部事件等等所產生的,所以才需要有這兩個功能。
嵌入式作業系統通常會提供一種叫包裹器(wrapper)的功能,主要是把一些比較低階的問題先放在一邊,讓寫程式的人把重點放在比較重要的錯誤處理上面,老實說,這種方式,有時很容易造成誤解,認為不重要的就可以不管它,其實,問題還是存在,只是優先處理重要的事情,這很像我們在處理工作時,通常會優先處理緊急的工作一樣,處理完緊急的工作還是要處理剩下的,有時間可以處理的工作一樣。
我們在此先簡單定義一下,甚麼是例外?甚麼是中斷?
例外(exception):就是處理器正常運作時,突然插入一個緊急或者特殊的狀況,讓處理器不得不先處理這個事件。例外分成同步與非同步兩種。甚麼叫同步跟非同步,簡單說同步,就是自己內部產生的異常,讓處理器不得不處理內部的異常狀況。而所謂的非同步,就是外部事件所產生的異常,例如說前篇所說的信號發送異常,這類都是屬於外部所產生的問題,所以處理器就得要非同步的處理這類狀況。
中斷(interrupt),也就是上述的例外(exception)所產生的一種動作,因為要處理同步跟非同步的狀況,就一定要中斷正常的處理程序,所以中斷就是一個必然的動作。
已經進入第20天了,時間過得真快,再繼續努力學習了!