Skip to Main Content
建立嵌入式系統--傑出軟體的設計模式
book

建立嵌入式系統--傑出軟體的設計模式

by Elecia White
October 2012
Intermediate to advanced content levelIntermediate to advanced
328 pages
7h 19m
Chinese
GoTop Information, Inc.
Content preview from 建立嵌入式系統--傑出軟體的設計模式
120
|
第五章
中斷總是十分嚇人,是嵌入式系統與傳統應用程式軟體最主要的差異,中斷天外飛來一
筆的改變程式流程,只能呼叫特定的函數(通常不是除錯函數),需要十分快速,是少數
仍然以組合語言撰寫的程式,難以找出中斷裡的臭蟲,根據定義,它們是發生在正常程
式流程之外。
中斷並非天生就這麼難搞,只要瞭解了中斷發生的細節,就會成為設計軟體時十分有用
的工具。
回顧到目前為止的內容,希望讀者記得將處理器與介面看作軟體 API(參看 36 頁的「閱
Datasheet」),以及函數指標也不是那麼嚇人(參看 64 頁的「函數指標並不那麼嚇
人」),接下來介紹中斷發生時的細節時必須將這兩個觀念牢記於心:
1. 中斷請求(interrupt requestIRQ)在處理器內部發生,可能來自週邊、軟體或是
系統錯誤。
2. 處理器會儲存目前所在位置(情境)。
3. 處理器從中斷向量表(interrupt vector table)找出對應的回呼函數(callback
function)。
4. 呼叫回呼函數(也稱為
中斷服務常式
interrupt service routine
ISR
,或中斷處
理常式)。
有些中斷是很小的高優先權工作,完成對應的 ISR 後,處理器會回復儲存的情境繼續原
先執行的工作像沒事一樣。大多數週邊中斷都是這樣:輸入線路、通訊路徑、計時器、
週邊、ADC 等等。
其他的中斷比較像是例外(exception),處理系統錯誤且不會回到原有執行路徑。例如
處理器試著執行可能造成記憶體錯誤,或除以零錯誤的問題指令時就會發生中斷,或是 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

HBASE技術手冊

HBASE技術手冊

Lars George
ANGULARJS建置與執行

ANGULARJS建置與執行

Shyam Seshadri, Brad Green
高效能PYTHON程式設計

高效能PYTHON程式設計

Micha Gorelick, Ian Ozsvald

Publisher Resources

ISBN: 9789862765784