Professional Documents
Culture Documents
tw
或來電(02)2705-5066
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
作者序 1
作者序
本書為初學者系統講解嵌入式軟體基本原理。綜合討論了有關這個領域的各
種技術,尤其討論了對即時操作系統的恰當運用,而即時操作系統是許多嵌入式
軟體的基礎。除了介紹這些系統的功能之外,本書還說明了如何有效地使用這些
作業系統。
在閱讀本書之前讀者不需要對嵌入式系統的軟體和有關問題有任何的瞭解,
作者會從基礎開始進行討論。不論你是一位有一年或多年編程經驗的軟體工程師,
還是剛剛學習了一些編程課程的學生,你都應該熟悉一些計算機程式設計的基本
概念,應該理解編寫程式過程中的有關問題。本書要求讀者學習過 C 程式設計語
言,因為 C 是嵌入式系統中的「國際通用語言」。如果讀者計劃進入嵌入式領
域,那麼遲早都得學習 C 語言。當然,通曉一些組合語言的知識也會有幫助的。
你肯定看到過一些關於軟體的書足有 800 頁、900 頁,甚至 1000 頁厚,也許
你已經發現這本書則薄得多。這是作者的一種願望,目的就是讓讀者儘可能多地
翻閱它。這本書沒有標榜「讀者所要瞭解的有關嵌入式系統軟體的一切」。沒有
人能夠寫出這樣的書,即使某個人能夠寫出來,讀者無論如何也不會讀它的。本
書更像是提供「想開始從事嵌入式系統軟體工作所需要瞭解的」知識,告訴讀者
在遇到問題時所需要掌握的必要知識,並且讓讀者對所涉及的系統有所認識,從
而能夠解決所遇到的問題。
本書並不針對某一種特定的微處理器或即時操作系統,也不針對某一特定軟
體設計方法。無論是採用哪一種微處理器、哪一種即時操作系統、哪一種軟體設
計方法,原理都是相同的。本書中,我們專注於原理──可以運用到幾乎所有的
嵌入式系統專案的原理。在讀者需要瞭解特定的微處理器以及即時操作系統時,
可以參考硬體和軟體銷售商隨產品提供的手冊。本書會告訴讀者應該查找哪些資
訊。
本書既不是學術性的也不是理論性的著作,而是為讀者提供工程方面的資訊
以及相關建議。
總之,這本書是編寫嵌入式系統軟體所需要的一塊基石。
Davod E. Simon
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
致 謝 1
致 謝
如果沒有別人的幫助,一個人就不會有足夠好的創意來寫這樣一本書,或者
也不會有足夠的毅力堅持把它完成。所以,下面按照時間的先後順序介紹所有幫
助我完成這本書的人們。
首先要感謝 Probitas 公司的人們:感謝 A. J. Nichols,他使得公司成為一個如
此富有思想且高質量的軟體環境;感謝 Michael Grischy,感謝他正在進行的關於
嵌入式系統設計的討論和編碼風格;感謝 Richard Steinberg,他檢查了本書的代碼
示例;感謝 Ric Vilbig,他檢查了關於硬體的兩個章節,並改正了我的許多誤解。
我的妻子,Lynn Gordon,鼓勵我寫這本書,並正確地預見到我將非常喜愛做
這件事。感謝你鼓勵我開始,感謝你所做的編輯工作……即使在英語用法的細節
上,你也總是正確的。
感謝 6 個班的全體學生:感謝那些提出深刻問題,並因此促使我理清思路的
學生們;感謝那些提出基本問題,並因此促使我詳細闡明解釋的學生們;另外,
感謝所有拿到我的初稿後保持沈默的學生們。
感謝 Dragon Systems 有限公司的聰明的夥伴,感謝你們編寫的 Naturally Spe-
aking 程式,這個語音識別程式是如此之好,使得我不用受很多打字之苦就可以準
備出手稿。
非常感謝 Jean Labrosse 允許我在本書中使用他的即時操作系統 C/OS。你寫
出這個系統,並允許它在教育領域免費使用,真是幫了世界一個大忙。
感謝 John Keenan,你教會我許多硬體的知識,並且直率地指出我的手稿中的
許多錯誤。
以下是檢查了手稿的第一版並提出大量好的建議的人們,他們當中有許多人
的名字我已經在書中提到:Antonio Bigazzi、Fred Clegg、David Cuka、Micheal
Eager、John Kwan、Tom Lyons 以及 Steve Vinoski。感謝你們!
感謝 Zilog 公司的 Mike Hulme,允許我在第 3 章的最後使用圖表的例子,並
提供了清晰的副本。
最後,感謝 Debbie Lafferty 和 Jacquelyn Doucette 監管了本書從開始到出版的
所有階段;感謝 Ann Knight 和 Regina Knox 指出所有不知為何我寫的時候是清楚
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
2 致 謝
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
關於本書和光碟 1
關於本書和光碟
嵌入式系統的不同之處
嵌入式系統中一個非常令人遺憾的地方在於,有關術語不是很統一:每一個
概念都有 2~3 個不同的詞表述,每一個詞又有 4~5 個略微不同的意思,而讀者
只能忍受這件事。在本書中,我們將指出這些意思的不同之處,之後我們會為每
一個詞指定一個明確的意義來幫助讀者不會混淆。當讀者閱讀其他的書或是與人
交談時,讀者需要注意他們的用詞可能與在本書中這些詞的意思有一些不同。
另一個令人遺憾的地方在於嵌入式系統這個詞涵蓋了很大範圍的產品,概括
起來是很困難的。嵌入式系統可建立在不同的微處理器上,從 Z8(不能夠使用外
存的 8 位元微處理器)到 PowerPC(可以存取千百萬位元組的 32 位元微處理
器),其應用程式的程式碼大小也從 500 個位元組到數百萬個位元組不等。
基於這些原因,以及應用的不同,在嵌入式系統這個領域裏沒有什麼是通用
的。某個被 85%的工程師視為最佳實踐的規則,在另外 15%的工程師眼裏有時為
了系統運轉不得不被打破。本書將關注適用於 85%情況下的規則,重點強調概念
和規則背後的原理,並幫助讀者決定是應該遵從這些通用規則,還是讀者的專案
屬於另外 15%的情況。
本書的章節間依賴關係
儘管這本書是打算讓讀者按順序從頭讀到尾的,儘管每一章都至少依賴一點
它前面的章節,但是如果讀者喜歡,還是可以跳過一些章節。由於本書對每一部
分都從最基本的知識講起,如果讀者已經知道了一些相關的知識,可以跳過這些
段落。章節之間最主要的依賴關係如下頁圖所示。
例如,如果讀者已經很熟悉硬體,或者不需要瞭解這些,讀者可以跳過第 2
章和第 3 章。但是不要嘗試在沒有閱讀第 4 章、且不瞭解相關知識的情況下就閱
讀第 6 章。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
2 關於本書和光碟
第 1 章 嵌入式系統
初探
第7章 作業系統服務
第8章 即時操作系統的基
本設計
第 11 章 一個實例系統
C++
儘管 C++在嵌入式系統領域中是一個越來越流行的語言,但讀者不會在本書
中看到它。這並不是不鼓勵讀者使用這個在嵌入式系統領域和應用程式領域中都
如此通用的 C++語言。但是 C++有一個公認的缺點在於:它是一種複雜的語言,
在很多方面都比 C 語言複雜和難以捉摸。本書所討論的編程原則對於 C 和 C++都
是通用的(也包括 Ada、Java、BASIC……)。
C!!
在諸如本書這樣的書中提供容易理解示例,常見的一個問題(也是一般軟體
的問題)是,關鍵之處總是隱藏在細節中。為了避免這種事情在本書中出現,書
中的有些示例不是全部用 C 而是用 C!!寫成的。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
關於本書和光碟 3
除了放了兩個驚歎號之外,C!!和 C 完全一樣,計算機會完成驚歎號後所描述
的一切。
例如:
if (x != 0 )
{
!! 從硬體計時器中讀出值
!! 進行必要的計算
y =!! 將計算結果儲存在 y 中
}
if ( y > 197 )
{
!! 點亮警報燈
}
…
如果 x 不為零,此程式將從硬體計時器中讀出值,而後將進行必要的計算並
將結果儲存在 y 中。如果 y > 197,此程式將點亮警報燈。
接下來假定只使用 C!!的特殊性質來編寫一些應用中依賴硬體或需要進行指定
計算的程式碼。例子中的這些部分是用普通的 C 語言編寫的 1。
匈牙利變數命名方法
本書中很多代碼實例使用匈牙利標記法來命名變數。下面簡要介紹此規範。
在匈牙利標記法中,變數名中包含關於它的類型資訊。例如,整型(int)變數名
以字母 i 開頭,位元組型(byte)變數以"by"開頭等。而且,變數名的字首可以表
明此變數是一個指標("p_")還是一個陣列("a_")等。下面是一些典型的變數
名以及我們從這些變數名中可推斷出的資訊:
byError──位元組型別變數(可能包含一個錯誤代碼)。
iTank──整數型別變數(可能包含油罐的數目)。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
4 關於本書和光碟
p_iTank──整數型別指標。
a_chPrint──字元型別陣列(大多數情況,資訊將被列印出來)。
fDone──一個標記(表明一個過程是否完成)。
雖然一開始理解這些名字有點費力,但是人們普遍認為變數名中包含的少量
資訊可以方便編程,這就是匈牙利標記法流行的原因。2
C/OS
如果讀者已經看了第 6 章中關於即時操作系統的討論,讀者可能想親手試用
這樣一種系統。為了幫助讀者實現這樣的想法,本書附帶的光碟會提供 C/OS(發
音為"micro-see-oh-ess")。此光碟上的內容已經得到 C/OS 的作者 Jean Labrosse
的許可。讀者可以將 C/OS 作為一種學習工具來使用,但是不可以在不經許可的
情況下用於任何商業產品。 C/OS 不是共用軟體,下面有關於 C/OS 的許可,第
6、7 章和表 11-2 可以引導讀者使用此系統。如果讀者想瞭解關於此系統更多的
資訊,可以參見本書後「進一步閱讀」書目列表中 Labrosse 的書籍,或者到 C/
OS 的網站瞭解更多資訊。
C/OS 許可證
C/OS 的原始碼和目標代碼可以免費分發給可信賴的大學和學院的學生使
用,只要不用於商業應用就不需要許可證。也就是說,將 C/OS 用於教育目的並
不需要許可證。
要將 C/OS 嵌入在商業產品中,需要得到目標代碼分發許可證,它允許將
C/OS 用在營利性產品中但需要支付一定量的許可費用,需要聯繫 Labrosse 先生
來商討價格。
如果打算分發 C/OS 的原始碼,同樣需要得到原始碼分發許可證,同樣也需
要支付許可費用,可聯繫 Labrosse 先生來商討價格。
可以通過以下聯繫方式聯繫到 Jean Labrosse 先生:
2 本書中用到的匈牙利標記法只是一個衍生版本,並不是原始版本,衍生版本與原始版本的主要
區別在於: 原始版本並沒有使用下劃線將前綴與變量名的其他部分分開; 衍生版本使用與
變量命名相同的規範來命名函數。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
關於本書和光碟 5
Jean.Labrosse@uCOS-II.com
或者
Jean J. Labrosse
949 Crestview Circle
Weston, FL 33327
USA
1-954-217-2036 (電話 )
1-954-217-2037 (傳真)
官方網站為 www.ucos-ii.com。讀者可以聯繫 Labrosse 先生獲得關於 C/OS 的
支援,但前提是讀者已經從 C/OS 網站得到了 C/OS 的最新版本和補充。
附帶光碟中的實常程式和 C/OS 需要在 DOS 環境下使用 Borland C/C++編譯
器方可使用。現在可以花$49.95 得到此編譯器的教學版本(只用於學習目的,不
能用於商用產品的開發)。不同的零售商都提供此編譯器,讀者也可以通過 www.
borland.com 與 Borland 公司聯繫。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
目 錄 1
目 錄
第 1 章 嵌入式系統初探 1
1.1 嵌入式系統的舉例/ 2
1.2 典型的硬體/ 9
本章總結/ 11
第 2 章 軟體技術的硬體基礎 13
2.1 術 語(Terminology)/ 14
2.2 電路閘(Gates)/ 17
2.3 其他一些基礎知識/ 20
2.4 時序圖(Timing Diagrams)/ 27
2.5 記憶體/ 31
本章總結/ 38
習 題/ 39
第 3 章 高級硬體基礎 41
3.1 微處理器/ 42
3.2 匯流排(Buses)/ 43
3.3 直接記憶體存取(Direct Memory Access)/ 52
3.4 中 斷(Interrupts)/ 56
3.5 其他常用元件/ 57
3.6 與微處理器整合的元件/ 65
3.7 示意圖(Schematics)規範/ 68
3.8 示意圖實例/ 69
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
2 目 錄
3.9 有關硬體的最後幾句話/ 71
本章總結/ 71
習 題/ 72
第4章 中 斷 75
4.1 微處理器體系結構/ 76
4.2 中斷基礎知識/ 80
4.3 共用資料問題(Shared-Data Problem)/ 86
4.4 中斷延遲(Interrupt Latency)/ 98
本章總結/ 104
習 題/ 105
第 5 章 軟體體系結構綜述 109
第 6 章 即時操作系統導論 129
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
目 錄 3
第 7 章 作業系統服務 163
第 8 章 即時操作系統的基本設計 201
8.1 概 述/ 202
8.2 原 理/ 204
8.3 舉 例/ 220
8.4 旗號和佇列的構裝/ 230
8.5 硬即時系統調度問題/ 237
8.6 節省儲存空間/ 238
8.7 節省耗電/ 242
本章總結/ 243
習 題/ 245
第 9 章 嵌入式軟體發展工具 247
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
4 目 錄
第 10 章 除錯技術 269
第 11 章 一個實例系統 313
後 記 377
進一步閱讀 379
英文索引 381
中文索引 401
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
CHAPTER 1
嵌入式系統初探
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
2 嵌入式系統入門
現今,隨著微處理器的體積變得越來越小、價位越來越低,越來越多的產
品中「嵌入」了微處理器,以實現其「智慧化」。這些微處理器晶片以及相關
軟體已然應用到許多方面,如錄影機、數位手錶、電梯、汽車發動機、溫控裝
置、工業控制設備、科學儀器與醫療器械等。人們以「嵌入式系統」(embeded
system)這個名詞來表示已經融合到各種產品中的計算機系統。
嵌入式系統的軟體必須能解決一些在桌上式或大型計算機應用軟體中不存
在的問題。嵌入式系統經常要同時完成若干任務,所以必須能夠及時回應外部
事件(external event)(比如,有人按下一個電梯按鈕),必須能在無人干預
的情形下應對所有的異常情況。因而,它們的工作有著嚴格的時間限制。
1.1 嵌入式系統的舉例
我們通過討論幾個實例,來幫助讀者加深對嵌入式系統軟體的理解,這樣
可以把問題具體化。隨著對一些問題和有關解決方案討論的進一步深入,我們
會經常返回來研究這些實例。
1.1.1 電報機
首先討論的是以「電報機」命名的一個系統,其名稱源於歷史發展。電報
機可與只有高速串列網路介面(serial port to network)的印表機相連。在外觀
上,電報機就像一個小塑膠盒子,2~3 英寸寬,約半英寸厚;一側有電纜插入
印表機串列介面,另一側的連接器插入到網路中。電報機的外觀如圖 1-1 所示。
顯然,電報機必須從網路接收資料,然後將資料複製到序列埠(serial port)
上,但實際上,電報機要完成的工作要比這些複雜得多。下面是電報機必須完
成的一些工作:
‧在網路上,資料有時並非依序到達,甚至有的資料在傳輸途中丟失,而
有些則收到了完全相同的兩份。電報機必須對網路上這些混亂的資料加
以整理,並為印表機提供清晰的資料流程。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 1 嵌入式系統初探 3
列印連接
網路連接
圖 1-1 電報機
‧網路上通常連有許多計算機,這些計算機有可能同時發出列印請求。印
表機一般僅能與一台計算機連接,這樣電報機只能一次向印表機提出一
個列印作業,甚至有時設法拖延其他計算機的列印作業。
‧網路印表機必須向網路上發出請求的計算機報告其工作狀態,即使它當
前正在為其他計算機列印作業。傳統的序列埠印表機本身無法實現這一
點,但電報機必須能做到。
‧電報機必須能在無客戶配置的情況下,自動地與各種不同的印表機協同
工作,並能夠判斷出與之連接的印表機類型。
‧對於特定的事件,電報機必須能夠迅速做出回應。例如,對傳給電報機
的各種網路資料框(network frame),電報機必須要在 200 s 內發出回應。
‧電報機必須維持對時間的紀錄。例如,如果一台正發送給電報機列印資
料的計算機崩潰停機(crash)了,電報機必須最後放棄該列印作業(可
能在 2 分鐘以後),並通過網路上另一台計算機取出資料並列印。否
則,一台計算機的崩潰將造成印表機的所有使用者都不能繼續使用印表
機。
1.1.2 電報機的發展與面臨的挑戰
為了滿足上述需求,電報機內嵌了微處理器。這樣,電報機的軟體覆蓋面
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
4 嵌入式系統入門
更廣闊也更複雜,較其外觀可能給人留下更深的印象。在開發這些軟體過程中
會遇到哪些問題?在繼續往下讀之前,讀者不妨先自己考慮一下可能遇到的問
題,並把它們記錄下來。
當然,首先要求電報機的軟體是邏輯正確的,不能丟失某台計算機的請
求,不能漏掉資料或者錯報狀態。這也是對所有軟體在嵌入式領域和應用領域
的要求。
而編寫這樣一個電報機軟體(類似於許多其他嵌入式系統的軟體)還會面
臨一些額外的挑戰,下面我們就來逐一討論。
吞吐量(Throughput)
印表機的列印速度最快也只能趕上電報機所提供資料的速度。電報機不能
成為網路計算機與印表機之間的瓶頸。在很大程度上,從嵌入式系統得到更多
資料和使軟體運行得更快是相似的問題。其解決方案可以是高明的編程(pro-
gramming)、更好的排序和搜尋、更好的演算法,或者更易解析的資料結構等
等。不過這些技術細節不在本書的討論範圍內,我們要討論的是一些即時操作
系統中可能出現的影響吞吐量的問題。
回應(Response)
當一個關鍵的網路資料框到達時,即使電報機正在處理別的任務,也必須
在 200 s 內做出回應。軟體的編製則要確保這一點。我們將對回應展開討論,
因為這是嵌入式系統的普遍問題,而且所有的解決方法都意味著需要各種權衡。
人們經常使用一個比較模糊的詞──「速度」(speed),然而嵌入式系統
的設計者們要考慮的是兩個分立的問題──回應和吞吐量,解決的手段也各不
相同。事實上,解決好其中一個問題通常會使另一個變得更糟糕。所以本書中
將分別堅持使用「回應」和「吞吐量」這兩個術語,而避免使用「速度」一詞。
易測性(Testability)
判斷電報機能否正常工作並不容易,問題在於它的許多軟體要處理一些異
常事件。從這個角度講,電報機是一類典型的嵌入式系統,因為它要在無人干
預的條件下處理好一切,例如,系統大量的程式碼用於解決丟失的資料問題。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 1 嵌入式系統初探 5
然而資料又並不是那麼容易丟失,尤其在實驗中,網路建立的非常完善,各元
件一律全新,連線皆為 15 英尺長,這使得那些程式很難被檢測。
類似地,電報機要處理並行(simultaneous)事件。例如,如果兩台計算機
幾乎同時給出列印任務,軟體能恰當處理嗎?當然,嵌入式系統中有程式碼來
處理這種情況,但是,怎樣才能讓兩台計算機幾乎同時給出列印任務來測試這
段程式碼呢?
我們將就此作一些討論。
可除錯性(Debugability)
當電報機軟體中的一個錯誤被檢測出來的時候,會發生什麼情況呢?電報
機沒有顯示幕(screen),沒有鍵盤,沒有揚聲器,甚至沒有指示燈。當一個
錯誤出現,你得不到任何標識(icon)或者對話方塊(message box),電報機
就停止工作了!是網路的軟體錯誤?是記錄計算機列印任務的軟體錯誤?是報
告印表機狀態的軟體錯誤?電報機就這樣停止工作了,而沒有任何提示。
不幸的是,電報機的停止運行不能帶來任何關於錯誤的資訊。更糟糕的
是,在沒有顯示幕、沒有鍵盤的情況下無法運行任何除錯程式!設計者必須通
過其他方法來確定發生了什麼故障。我們將討論一些用於嵌入式系統軟體檢錯
的方法,以及一些能避免危害到整個系統的嚴重錯誤的方法。
可靠性(Reliability)
如同大多數的嵌入式系統一樣, 電報機是不允許崩潰的。儘管用戶似乎
能夠容忍在桌上型上不時地重新啟動系統,但是沒人會對一個崩潰的小塑膠盒
子有耐心的。一個尤其糟糕的情況是,應用軟體可以通過在顯示幕上發消息來
詢問用戶該做些什麼。但是嵌入式系統軟體則沒有這種可能,無論發生什麼,
嵌入式系統軟體都必須在無人干預下運行。
記憶體空間
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
6 嵌入式系統入門
必備的技能,這將在下面討論。
程式安裝
電報機軟體的安裝是不能通過滑鼠單擊圖示來完成的。下面將會討論在嵌
入式系統中安裝軟體所需要的特殊工具。
再來看一個嵌入式系統的例子──無線條碼掃瞄器。使用者一按下開關,
無線條碼掃瞄器就會發射雷射讀取條碼,再通過無線通信元件傳給收銀機(見
圖 1-2)。
1.用戶按下
開關
2.雷射讀取條碼
3.無線電將條
碼傳送給收
銀機
圖 1-2 無線條碼掃瞄器
無線條碼掃瞄器軟體發展的問題與電報機的相比較有何不同呢?
事實上,大體是相同的。無線條碼掃瞄器不存在吞吐量問題。條碼沒
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 1 嵌入式系統初探 7
有大量資料,使用者也不用飛快地按開關。另一方面,無線條碼掃瞄器還有一
個電報機所沒有的問題。
耗能(Power Consumption)
因為掃瞄器是無線的,電池就是唯一的能源來源。又因為掃瞄器是手提式
的,電池的重量被限制在普通用戶能夠舒適握持的水平。用戶希望電池能夠維
持多長時間?顯然答案是:永遠,當然這是不可能實現的。那麼次優的答案是
什麼?
次優的答案是電池應能夠持續供電 8 小時,之後,晚上可把掃瞄器放回收
銀機旁的套座上充電。但是事實證明,通過電池電源同時運行雷射頭、微處理
器、記憶體和無線通信元件接收裝置 8 小時也是不可行的。於是,該軟體令人
頭疼的主要問題之一就是把那些不工作的硬體部分分辨出來,包括處理器,先
把它們關掉。這些內容會在以後詳細討論。
1.1.4 雷射印表機
第三種嵌入式系統是雷射印表機。大多數雷射印表機擁有功能非常強大的
嵌入式微處理器來控制列印的各個方面。比如,微處理器負責從印表機的各個
傳輸埠(communication port)獲取資料;在用戶按下控制板上的按鈕時做出判
斷;在控制板顯示器上向用戶顯示消息;探測是否卡紙(paper jam)並進行恢
復;留意印表機是否缺紙等。
但是微處理器最重要的工作還是管理雷射器,這可是決定最終列印圖樣的
關鍵元件。沒有微處理器的協助,雷射器能做的只是在紙的每個位置上印一個
黑點(black dot),不能分辨字母的寫法、字體、字大小、斜體字、下劃線、
粗體或任何其他用戶認為默認的東西。微處理器需要讀出所輸入的資料,並分
辨出每個黑點需要列印的地方。這就帶來了在某些嵌入式系統中出現的一個問
題──處理器過載。
處理器過載(Processor Hogs)
即使對功能強大的微處理器而言,在傾斜地列印出奇怪字體尤其是字型大
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
8 嵌入式系統入門
小的列印請求時,分辨在什麼地方該打上黑點仍然是很耗時的。用戶只希望在
按鍵後得到迅速回應,而並不關心處理器正在忙於通過三角函數計算出該在什
麼地方為顛倒的字母列印上襯線(serif)。占用處理器大量時間的操作使得列
印回應更加困難。
地下油罐監視器用於在加油站監視地下油罐的汽油浮標讀數。它的首要任
務是在加油站因為錯誤而導致毒氣排泄之前探測到泄漏並打開報警響鈴。該系
統具有一個含 16 個按鈕的面板、20 個字元的液晶顯示器,以及一台溫度列印
儀。用戶可以通過按面板上的按鈕,要求系統顯示或列印油罐中的汽油浮標讀
數、當天時間或者系統總狀態。
要得到某一油罐內的汽油儲量,系統先讀取油罐中的兩個浮標的讀數,其
中一個表示的是汽油浮標的讀數,另一個表示的是油罐底部水的讀數。另外,
還要讀取油罐中各個水平層面上的溫度;並考慮到汽油的熱脹冷縮。僅因為熱
脹冷縮而引起的浮標讀數下降的情況,是不用報警的。
除了由於嵌入式系統中成本的頻繁上升所帶來的問題之外,這些都不是困
難。
成本(Cost)
由於加油站的擁有者通常是應政府機構的要求而購買這些系統的,所以希
望系統能儘可能地便宜。因此,系統將被搭建在一個極其便宜的微處理器上,
這個微處理器可能僅僅知道 8 位元數加法而不知道如何有效地使用汽油膨脹係
數。於是,該系統的微處理器將會因計算汽油的儲量而異常地忙碌,而這種計
算將導致處理器過載。
地下油罐監視器的草圖(sketch)見第 8 章圖 8-7。圖 8-6 則列出了監視器
的工作詳細描述。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 1 嵌入式系統初探 9
最後,我們將從這個非常簡單的、假想的控制核反應爐的系統中學到很多
有用的東西。這個假想系統必須能完成很多工作,但是只對用於監視兩個溫度
的代碼部分感興趣,這兩個溫度應該是時刻一致的,如果它們有了差異,則意
味著反應爐發生了故障。後面章節中,我們將會反覆回顧這個系統若干次。
1.2 典型的硬體
如果讀者對常用於嵌入式系統的硬體比較瞭解,就可以跳過本節;否則,
請繼續閱讀關於這些系統中常用硬體的總結。
首先,這些系統都需要有一個微處理器(micro processor)。用於嵌入式系
統的微處理器種類繁多,表 1-1 列出了常用的微處理器系列清單以及它們的特
性。
表 1-1 用於嵌入式系統的微處理器
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
10 嵌入式系統入門
嵌入式系統的記憶體有兩方面用途:儲存程式和儲存資料。不同於桌上型
系統把程式和資料儲存在相同的記憶體裏,嵌入式系統對這兩種不同的用途採
用不同的記憶體。由於典型的嵌入式系統沒有硬碟來儲存程式,程式必須儲存
在記憶體裏,即使在電源被切斷時也是這樣。毫無疑問的是,桌上型的記憶體
在電源被切斷的時候會丟失所有內容。因而,嵌入式系統需要一種特殊的記憶
體,可以在斷電的時候仍能保存內容。令人遺憾的是,這種記憶體不適合儲存
資料(這將在第 2 章中作詳細討論),因此嵌入式系統使用普通記憶體(regular
memory)來保存資料。
除微處理器和記憶體外,嵌入式系統是以「沒有什麼」而聞名,而並非以
「有什麼」。大多數嵌入式系統不包含以下硬體:
‧鍵盤(keyboard):有些系統有少量按鍵供用戶用於輸入;而有些系統
(例如,電報機)甚至連少量按鍵都沒有。
‧顯示幕:許多系統,尤其是用於商業產品的系統,會有一個 20~30 字
元的液晶顯示幕;例如,雷射印表機有一個 2 行、每行能顯示 10 或 12
個字元的狀態顯示幕;其他系統甚至連這樣的輸出能力都沒有。還有些
系統可能僅靠發光二極體(light-emitting diodes)(那些在系統上不時看
到的小燈)來顯示一些系統的基本運作情況。
‧磁碟機:程式儲存在記憶體中,並且大多數嵌入式系統沒有永久性儲存
大量資料的需求,所以通常使用各種特殊的記憶體而非磁碟機來儲存資
料。
‧光碟、揚聲器、麥克風、磁片、數據機(modem):大多數嵌入式系統
沒有對這些硬體的需求。
嵌入式系統通常包括標準序列埠、網路介面(network inteface),以及與
系統所控制的設備上的感測器(sensor)、啟動作用器(activator)進行互動的
硬體。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 1 嵌入式系統初探 11
本章總結
‧嵌入式系統是隱藏在某個產品中而非計算機中的任何計算機系統。
‧嵌入式系統的軟體開發將面臨許多一般應用軟體開發所不會面臨的困難:
—吞吐量:系統可能需要在短時間內處理大量資料。
—回應:系統可能需要對事件作出快速回應。
—易測性:嵌入式系統軟體的測試裝置搭建起來會很困難。
—可除錯性:在沒有鍵盤、顯示器的條件下,查出軟體的錯誤(而非僅
僅查出不工作的問題)是個棘手問題。
—可靠性:嵌入式系統要有能力在無人干涉的條件下處理任何狀況。
—記憶體空間:嵌入式系統的記憶體非常有限,必須使程序和數據適應
任何一種記憶體。
—程序安裝:在嵌入式系統上安裝軟體需要特殊的工具。
—耗能:手提式系統必須在電池電源上運行,這些系統上的軟體必須節
能。
—系統過載:占用大量 CPU 時間的計算會使響應問題複雜化。
—成本:降低成本是許多嵌入式系統設計所關注的焦點,軟體常常運作
在僅僅剛能滿足任務需求的硬體上。
‧嵌入式系統包括微處理器和記憶體,有的系統還有序列埠或網路連接,
通常沒有鍵盤、螢幕,或光碟驅動器(disk drive)等元件。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
CHAPTER 2
軟體技術的硬體基礎
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
14 嵌入式系統入門
如果讀者已經熟悉了數位硬體技術,可以跳過本章和第 3 章。(但是,如
果讀者並不瞭解硬體知識,而是因為沒有耐心或想繼續學習軟體技術而跳過這
兩章,那麼讀者在閱讀後面有關軟體的章節時,就會不得不翻回來看這兩章,
以便理解後面的內容。)
一個軟體設計工程師可能設計了一輩子的應用程式,卻對硬體知識一無所
知;而一個嵌入式系統設計師卻要從一開始就和硬體打交道。為了編寫出正確
的系統軟體程式,嵌入式系統設計師必須瞭解硬體;必須把軟體安裝到硬體
上;必須能夠區分某一個問題是由軟體錯誤引起的,還是由硬體問題引起的;
必須能夠閱讀硬體概要圖(hard ware schematic diagram),並提出更正。
本章和第 3 章將介紹硬體技術的基礎知識。這兩章的內容足以幫助理解後
面章節的典型嵌入式系統概要圖,編寫出系統程式並順利地和硬體工程師交
流。當然,若要設計自己的硬體,這些知識還遠遠不夠。
2.1 術 語(Terminology)
2.1.1 基本術語
當今的大部分數位電路是由半導體(semiconductor)材料製成的,這些半
導體材料叫做晶片(chip),一般由專門的製造商提供。這些半導體就是用塑
膠或陶瓷製成細小的正方形或長方形的黑色包裝盒(black package)。半導體
和外部連接的部分叫做引腳(pin)(又可稱為接腳),引腳排在包裝盒的兩
側。根據晶片構裝類型的不同,晶片可以有 8~500 個引腳(見圖 2-1)。晶片
製造商提供的關於產品資訊的說明文件叫做資料表(data sheet)。
印刷電路板(printed circuit board)是將不同的晶片連接起來的最常用的方
法。印刷電路板是一塊薄的玻璃纖維板,板上印有銅線來實現必要的連接。晶
片被生產出來後就會被固定在印刷電路板上的適當位置。雖然很多公司會把製
造和裝配轉包給專業製作的公司,但嵌入式系統特色產品的製造商還是會自己
設計電路板。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 2 軟體技術的硬體基礎 15
雙列直插式構裝 塑料引線晶片載體構裝
薄型小外型構裝 塑料四方扁平構裝
圖 2-1 晶片的構裝類型
硬體設計師會把他們的設計繪製成概要圖(schematic diagram),來表示電
路的主要部分和它們之間的連接。概要圖的一個例子可以參閱圖 3-20。本章和
第 3 章將介紹概要圖中常用的符號(symbol)和約定(convention)。需要指出
的是,概要圖並不代表電路板的最終布局(layout)(雖然有些概要圖會包含
一些關於布局的資訊)。
2.1.2 更基本的術語
大部分數位電路只有兩個工作電壓:
電壓 0 伏特,也叫做接地電壓(ground voltage)或低電壓。
電壓 3 伏特或 5 伏特,也叫做集電極電壓(Voltage Connected to Collector,
VCC)或高電壓。1
任何時候,電路中的任何信號不是處於高電壓,就是處於低電壓(其實,
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
16 嵌入式系統入門
兩種電壓的轉化需要很短暫的時間)。對大部分電路元件而言,電壓允許有小
於 1 伏特的雜訊。比如,低壓可以是 0~1 伏特之間,高壓可以是 3~5 伏特之
間,而 1~3 伏特之間是非法電壓(not allowed voltage)。電路中各個部分的電
壓從低到高和從高到低變化,構成了整個電路的全部活動。
除個別情況外,用一個信號表示資料或位址時,通常低電壓表示 0,高電
壓表示 1。電路中除了表示資料和位址的信號外,還含有一些信號,如「處理
器重啟(reset)」和「從某記憶體晶片中讀取資料」。當這些信號表示正處在
它們所要表示的狀態時,它們被稱為確立有效(asserted)。例如,當處理器需
要從記憶體中讀取資料時,工程師需要設計一個叫做「從該記憶體讀取資料」
的信號。有些信號在高電壓時是有效的,而有些在低電壓時是有效的。2 要知
道一個信號屬於哪一種,需要閱讀資料表中的相關資訊。
大部分的硬體工程師會給每個信號起一個名字。比如,資料信號可能被叫
做 D0, D1, D2……;位址信號可能被叫做 A0, A1, A2……;表示「從記憶體中
讀取」的信號可能被叫做 MEMREAD。很多細心的工程師會給每個控制信號起
一個特殊的名字:若它們在低電壓時為有效狀態,會用一個星號(*)或斜線
(/)結尾,或者用一個星號開頭,或者在名字上方加一條線。例如,一個叫
做 MEMREAD/或*MEMREAD 的信號就是一個在低電壓時有效的讀取記憶體信
號。
輸出(outputs)是連接晶片和一些希望被晶片控制的信號,輸入(inputs)
是一些連接晶片並希望控制晶片的信號。多數信號只作為一個元件的輸出,而
作為若干個元件的輸入。如果一個元件的輸出控制了一個信號的電壓,就稱為
該元件驅動(drive)了這個信號。如果一個信號不受任何元件的控制,則這個
信號被稱為浮動(floating)的,它的電壓會隨時間不確定地變化。有的浮動信
號是無害的,但有的卻會帶來災難,這取決於浮動信號的輸出到達了哪些元件。
如果兩個元件同時驅動一個信號,當它們的驅動一致時不會出現問題。但
如果它們的驅動不一致,一個要信號變成低電壓,一個則要高電壓,那麼這兩
2 從晶片設計師的角度來看,根據製作晶片所使用半導體材料的電性的不同,一個信號外在低電
壓或高電壓時肯定是正常的。另外,當我們在 2.3 節講到開放收集器(open collector)時,低電
壓和高電壓的不同將使你在連接晶片時不得不採用不同的策略。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 2 軟體技術的硬體基礎 17
個元件之一(或兩者)可能會燒壞。一般這兩個元件都會變得很熱(當你的手
指觸到它們時會起泡),然後它們會徹底癱瘓。這種情況有時被稱為匯流排競
爭(bus fight)。有的匯流排競爭只會持續很短的時間(比如,幾奈秒(nano
seconds)),但有的匯流排競爭週期性地發生,可能不會燒毀電路,但會造成
電路不能可靠運行,而且隨著時間的推移,可靠性會越來越差。毫無疑問,匯
流排競爭是由電路設計錯誤造成的。
2.2 電路閘(Gates)
電路閘是指由幾個半導體組成的非常簡單的電路單元,或者稱為獨立單元
(discrete)。本節將介紹電路設計中最常用的一些電路閘。雖然你可以買到只
有一個電路閘的晶片,但通常晶片都含有三、四個電路閘,甚至更多。
圖 2-2 指出了硬體設計師在設計概要圖時表示及閘(兩個輸入)的符號。
及閘的輸出(圖右邊的信號)若且唯若兩個輸入都是高電壓時才是高電壓;否
則,一直輸出低電壓。輸入/輸出的真值表如圖 2-2 所示。
輸入 1 輸入 2 輸出
輸入 1 高 高 高
輸出 高 低 低
輸入 2 低 高 低
低 低 低
圖 2-2 及閘
類似地,還有三個甚至多個輸入的及閘,見圖 2-3。若且唯若全部輸入為
高電壓時,其輸出才是高電壓。
圖 2-4 是或閘的符號。若且唯若兩個輸入都是低電壓時,或閘的輸出才是
低電壓;否則,如果有一個輸入是高電壓,輸出就是高電壓。和及閘類似,也
存在多個輸入的或閘。
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
18 嵌入式系統入門
輸入 1 輸入 2 輸出
高 高 高
高 低 高
低 高 高
低 低 低
輸入 1 輸入 2 輸出
高 高 低
高 低 高
低 高 高
低 低 低
反閘中輸出信號上的小圓圈(或稱氣泡)表示對輸出取反,這個符號也可
以在其他電路閘中使用。例如,圖 2-7 中的小圓圈表示對一個及閘的輸出取
反,若且唯若輸入都為高電壓時,輸出為低電壓。這個電路閘叫做反及閘(not-
AND Gate)(NAND Gate)。
輸入 1 輸入 2 輸出
高 高 低
高 低 高
低 高 高
低 低 高
圖 2-7 反及閘
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 2 軟體技術的硬體基礎 19
在輸入信號中也可以使用小圓圈(見圖 2-8),其作用是對相應的輸入取
反,然後將取反後的輸入給一個普通的或閘。
甚至有時,讀者會遇到圖 2-9 所示的符號。這和前面的反閘是一樣的。三
角部分表示一個輸入、輸出相同的驅動,小圓圈表示該電路閘要取反。該符號
中,小圓圈放在輸入部分還是輸出部分是沒有區別的。
輸入 1 輸入 2 輸出
高 高 低
高 低 高
低 高 高
低 低 高
而在實際的電路製造過程中,不管設計師在概要圖中使用了何種符號,製
造商都會使用同一種反閘。為什麼設計師喜歡用不同的符號呢?有的設計工程
師可能會用圖 2-9 中的反閘表示低電壓為有效狀態的輸入,而用圖 2-6 中的反
閘表示高電壓為有效狀態的輸入。(注意,這並不是唯一的設計習慣,有的工
程師可能正好相反,而有的工程師對此並不關心。)
類似地,一個反及閘和一個輸入取反的或閘也是等價的。看一下圖 2-7 和
圖 2-8 的真值表,你就會明白了:這兩個真值表是完全一樣的。和反閘的情況
一樣,不論電路圖中的符號是哪種,電路實現所採用的元件是相同的。一些工
程師使用輸入取反的或閘表示或運算的工作(希望當輸入中有一個有效時,輸
出有效,而不管是高電壓有效還是低電壓有效),同樣用反及閘表示與運算的
工作。(注意,這也不是唯一的設計習慣。)
在電路元件標識上,可以給一部分輸入加上小圓圈的同時不給其他的輸入
加上小圓圈,見圖 2-10。不過,是沒有製造商製造以此為標識的電路元件的。
圖 2-10 另一種電路
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
20 嵌入式系統入門
2.3 其他一些基礎知識
2.3.1 供電和去偶合(Decoupling)
一般來說,為電路供電的內容超出了本書的討論範圍,但有些知識,讀者
有必要去瞭解。
首先,除了極其少數個別的情況外,每個晶片都有一個供電接腳(power
pin)(有時叫做 VCC 引腳),必須連接到一直是高電壓的信號上;還有一個
接地接腳(ground pin),必須連接到一直是低電壓的信號上,用於提供晶片運
行所需的電能。區別於一般用於輸入、輸出信號的引腳,這兩個引腳用於為元
件的運行供電。比如,標準的 7400 晶片有 4 個反及閘,每個反及閘有兩個輸
入和一個輸出,共 12 個引腳,但 7400 有 14 個引腳:除了這 12 個引腳外,還
有供電接腳和接地接腳。在概要圖中,設計者通常不用畫出這兩個引腳,但在
實現中它們是電路工作不可或缺的。事實上,當一個電路不能正常工作時,一
個常用的測試方法就是測電壓,以便確保這兩個引腳連接正確。
當需要在概要圖中標注這兩個引腳時,設計者會使用圖 2-11 中的符號。
一個設計者必須解決的問題是,大部分晶片總是在個別時候耗電比平時
多。一般來說,當一個晶片需要同時將它的很多輸出從高電壓變為低電壓,或
者同時從低電壓變為高電壓時,它需要大量的電量來改變輸出信號。實際上,
這些信號需要的電量超過了普通電路板上薄薄的導體所能即時供給的電量。除
非解決這個問題,否則,會遇到局部出現若干微秒的供電不足的問題。在電壓
突然下降 10%時,哪怕只有幾微秒,大部分的晶片會停止工作。為了解決這個
問題,工程師們為電路增加了電容(capacitor)(電容可以儲存少量的電量,
就像一個可以充電的電池),並將它連接在供電接腳和接地接腳中間。
如果電路突然需要大量的電量,而同時電壓因此而下降時,電容器就會釋
放儲存的電量來維持電壓。(電容器可以減緩幾毫秒內電壓的快速下降,這足
以克服電壓下降帶來的問題。)當電路不再需要大量電量時,電容器會自行充
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 381
英文索引
A
Accumulator 累加器 78
activator 啟動作用器 10
address bus 位址匯流排 43
Address Decoding 位址解碼 67
address lines 資料線 33
address range 位址空間 46
Address Resolution 位址解析 251
Address signal 位址信號 32, 42
for microprocessor 微處理器的~~ 32
for ROM 唯讀記憶體的~~ 32
address signal 位址信號線集合 42
address space 位址空間 44, 47
Address 位址 42~44, 46~47, 67, 251
decoding 解碼~~ 67
ADSP 協定任務 204
aidle mode 空閒模式 242
allocate memory 配置記憶體 166
AND gate 及閘 17
Application-Specific Integrated Circuit(ASIC) 專用積體電路 63
Architecture 結構 121
function-queue-scheduling 函數佇列調度的~~ 110
microprocessor 微處理器的~~ 42
round-robin 輪轉~~ 110
round-robin with interrupt 帶有中斷的輪轉~~ 110
ASCII 281
ASIC(Application-Specific Integrated Circuits) 專用積體電路 63~64, 72
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
382 嵌入式系統入門
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 383
Cable 線纜 306
Cache 快取記憶體 microprocessor ~~微處理器 68
Capacitor 電容 20~21
event ~~事件 2, 149, 164, 172, 181
trace ~~跟蹤 301
character 字元 116
chip enable signal 晶片啟動信號 32, 45
Chip puller 晶片夾式拉出器 263
chip select signal 晶片選擇信號 32
Chip 晶片 14, 32, 45, 263, 305, 310
Clock 時脈 30
Clock-to-Q time clock-to-Q 時間 29
code fragment 程式碼片段 46
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
384 嵌入式系統入門
Code 代碼或程式碼 參見 Source code for example system. 6, 46, 111, 237, 257,
259, 319, 379
coding 編碼 168
combinatorial 組合性 62
communication bridge 通信橋接器 115
communication link 通信鏈結 116
communication port 傳輸埠 7
Compiler 編譯器 91, 240, 249
cross-compiler 交叉編譯器 240, 249
Conditional jump instruction 條件轉移指令 78
Connector 連接器 68
Constant string 常數字串 257
Context 上下文 82
saving and restoring 保存和恢復~~ 83
task 任務~~ 124, 131, 140~141, 147, 150, 164~165, 168, 170~173, 175~178,
185~186, 189, 207, 211~212, 215, 234, 273, 275
convention 約定 15
Cordless Bar-Code Scanner 無線條碼掃瞄器 6
core 核 63
Cost 成本 8
Counter 計數器 77
Counting semaphore 計數旗標 158
CR: carriage return 歸位 206
crash 崩潰停機 3
Critical section 臨界區 91
Cross-assembler 交叉組譯器 250
Cross-compiler 交叉編譯器 240, 249
crystals 電晶體 31
Cycle 時脈週期 bus 匯流排~~ 49
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 385
D Flip-Flop D 觸發器 28
Data 資料 32, 42, 44, 116, 137, 211, 240, 241~242, 298
daryption 解密程式 116
data bus 資料匯流排 44
Data sheet 資料表 14
data signal 資料信號 32, 42
for microprocessor 微處理器的~~ 32
for ROM 唯讀記憶體的~~ 32
DDP 協定任務 204
deadline 截止時間 113
Deadly embrace 鎖死 150
Debugging 除錯 306
interrupt routine 中斷程式~~ 81
debug 除錯 125
Debugability 可除錯性 5
debugging kernel 除錯內核 306
Decoupling 去偶合 20
decoupling capacitor 去偶合電容 21
deepest combination 最深的組合 239
Delay 延遲 132, 175~176
Propagation 傳播~~ 28
Design 設計 380
Development tool 發展工具 247
cross-assembler 交叉組譯器~~ 250
cross-compiler 交叉編譯器~~ 240, 249
flash memory 快閃記憶體~~ 35
in-circuit emulator 電路內模擬器~~ 265, 303
locator map ~~的定位器映射 260
monitor 監視器~~ 8~9, 309
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
386 嵌入式系統入門
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 387
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
388 嵌入式系統入門
floating 浮動 16
FPGA(Field-Programmable Gate Array) 可編程閘電路 63
Frequency 頻率 clock 時鐘~~ 178
Function 函數 overlapping 重疊~~ 46~47, 141
Function-queue-scheduling architecture 函數佇列調度結構 121
function-queue-scheduling 函數佇列調度 110, 121
Handshaking 信號交換 49
Hard real-time system 硬即時系統 203
hard ware schematic diagram 硬體概要圖 14
hard ware-dependent 硬體相關 272
hard ware-ind ependent 硬體無關 272
Hardware 硬體 46~47
ASIC 專用積體電路~~ 63~64, 72, 288, 305, 310
bus ~~匯流排 參見 Bus 43~44, 49, 53~54
debugging ~~除錯 306
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 389
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
390 嵌入式系統入門
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 391
Macro 巨集 287
Mailbox 信箱 164
Maintainability 可維護性 203
Map 映射 46, 260
locator 定位器~~ 239, 251, 260
memory 記憶體~~ 10, 18, 46~47, 52, 68, 130, 166, 185, 265
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
392 嵌入式系統入門
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 393
nano seconds 奈秒 17
native assembler 本地組譯器 250
Native tool 本地工具 248
Nested Inferrupts 中斷巢狀箝套 193
netmork interface 網路介面 10
network frame 網路資料框 3
Nonmaskable interrupt 不可遮罩中斷 83
Nonpreemptive real-time operating system 非搶占式即時操作系統 134, 135
nonpreemptive 非搶占式 134
not allowed voltage 非法電壓 16
not reenerant 不可重入 141
not-AND gate 反及閘 18
Nuclear Reactor Monitor 核反應爐監視器 9
Null 空指標 170
OE signal OE 信號 34
Ohm meter 歐姆表 292
oidle mode 空閒模式 242
Open collector 開放收集器 16, 21
Open collector output 開放集電器輸出 16
Or Gate 或閘 17
oscillators 振盪器 31
Oscilloscope 數位示波器 298
Oscilloscopes 示波器 293
OUT instruction OUT 指令 51
output enable signal 使能輸出信號 32, 43
Outputs and output signal 輸出和輸出信號 16
open collector 開放集電器的~~ 21
tri-stating 三態~~ 21, 23
outputs 輸出 16
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
394 嵌入式系統入門
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 395
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
396 嵌入式系統入門
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 397
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
398 嵌入式系統入門
static 靜態 37
Storage oscilloscope 儲存示波器 294
String 字串 142~143, 257
strobe 選通脈衝 42
Structure 結構 203
subroutine 副程式 81
suspend 暫停 132
symbol 符號 15
System on a Chip, SoC 單晶片系統 305
System tick 系統嘀嗒 176
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 399
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
400 嵌入式系統入門
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 401
中文索引
一劃
二劃
二極體 LED 66
三劃
三態 tri-stating 23
三態輸出 Tri-Stating Outputs 21
三態驅動器 tri-state driver 23
下降沿 falling edge 28
上下文 Context 82
上升沿 rising edge 28
上拉電阻 pull up resistor 22
工作站 workstation 248
工具鏈 Tool Chains 249
四劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
402 嵌入式系統入門
五劃
半導體 semiconductor 14
去偶合 Decoupling 20
去偶合電容 decoupling capacitor 21
可重入性 Reentrancy 141
可除錯性 Debugability 5
可預見性 predictable 238
可維護性 Maintainability 203
可編程唯讀記憶體,或者叫 PROM Programming Read-Only Memory 34
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 403
六劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
404 嵌入式系統入門
七劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 405
八劃
並行 simultaneous 5
事件 event 164
使能寫信號線 write enable signal 38
使能輸出(OE/)信號 output enable signal 43
使能輸出信號 output enable signal 32
供電接腳 power pin 20
函數佇列調度(function-queue-scheduling architecture)結構 110, 121
協同工作 59
奇偶錯誤 bad parity 58
奈秒 nano seconds 17
定位器 locator 239
定位器映射 Locator Maps 260
延遲 delaged 132
放入 post 164
易測性 Testability 4
油量任務 level task 147
狀態模式 State-Mode 301
直接記憶體存取 Direct Memory Access 52
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
406 嵌入式系統入門
九劃
信號交換 Handshaking 49
信號設備 Signaling Device 153
信號負載 Signal Loading 35
信箱 Mail boxes 164
保存上下文 saving the context 83
保持時間 Hold Time 29
建立時間 Setup Time 29
待機模式 standby mode 242
恢復上下文 restoring the context 83
指令 instmctions 257
指令集模擬器或者模擬器 Instrustion Set Simulators 287
指令管線 Instruction pipeline 68
看門狗計時器 Watchdog Timer 64
約定 convention 15
背景除錯監視器 backgrond debng monitor 309
計時器 Timers 65
計數旗號 countihg semaphores 158
重啟 reset 16
十劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 407
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
408 嵌入式系統入門
副程式 subroutine 81
十一劃
動態 dynamic 37
動態 RAM 刷新器 dynamic RAM refresh 37
唯讀記憶體 Read-Only Memory 32
唯讀記憶體模擬器 ROM emulator 264
堆疊指標 stack pointer 77
宿主機 Host 248
崩潰停機 crash 3
常數字串 constanc strings 257
帶有中斷的輪轉循環結構 round-robin with interrupt 110
探針 probe 112
接地接腳 ground pin 20
接地電壓 ground voltage 15
排程程式 Scheduler 132
啟動作用器 activator 10
啟動階段 boot-up time 130
條件跳轉指令 conditional jump instruction 78
現場可編程閘陣列 Field-Programmable Gate Arrays, FPGA 63
異或閘 XOR Gate 18
符號 symbol 15
組合性 combinatorial 62
組合語言 assembly language 47
組譯器 assembler 76
累加器 accumulator 78
處理器過載 Processor Hogs 7
術語 Terminology 14
軟即時系統 Soft Real-Time Systems 203
通用非同步收發器 Universal Asynchronous Receiver/Transmitter, UART 57
通用暫存器 general-purpose registers 77
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 409
十二劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
410 嵌入式系統入門
十三劃
匯流排 Buses 43
匯流排信號交換 bus handshaking 49
匯流排週期 Bus cycle 49
匯流排競爭 bus fight 17
彙編器 assembler 91
微控制器 micro controller 42
微處理器 micro processor 9
感測器 sensor 10
搶占式 Preemptive 134
概要圖 schematic diagram 15
禁止中斷 Disabling Interupts 83
腳本文件 Script Files 280
解密程式 daryption 116
資料表 data sheet 14
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 411
十四劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
412 嵌入式系統入門
睡眠 dormant 132
管道 Pipes 164
網路介面 netmork interface 10
網路資料框 network frame 3
輔助電路 auxiliary circuit 65
十五劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 413
十六劃
十七劃
優先順序 priority 84
優先順序反轉 priority inversion 156
優先順序繼承解決 priority inheritance 156
儲存示波器 Storage Oscilloscopel 294
壓入堆疊 PUSH 79
擱置 pended 132
檢測向量 test vector 62
獲取最頂端資料後調整資料指標 POP 79
臨界區 Criticl Section 91~92
鍵盤 keyboard 10
隱密的細節 Ugly Detail 166
點 dot 24
十八劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
414 嵌入式系統入門
鎖 latch 28
鎖死 deadly embrace 156
十九劃
邊緣 edges 28
邊緣觸發 edgetnggered 54
二十劃
觸發 trigger 181
警告框 bomb icon 270
驅動 drive 16
二十二劃
權衡 traol-off 171
襯線 serif 8
讀使能信號 read enable signal 32
二十三劃
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
國家圖書館出版品預行編目資料
嵌入式系統入門
作 者 - David E. Simon
譯 者 - 陳向群 等譯
校 訂 - 廖振詠
發 行 人 - 楊榮川
總 編 輯 - 王秀珍
主 編 - 穆文娟
責任編輯 - 陳玉卿
文字編輯 - 李敏華
封面設計 - 杜柏宏
出 版 者 - 五南圖書出版股份有限公司
地 址:106 台北市大安區和平東路二段 339 號 4 樓
電 話:(02)2705-5066 傳 真:(02)2706-6100
網 址:http://www.wunan.com.tw
電子郵件: wunan@wunan.com.tw
劃撥帳號:01068953
戶 名:五南圖書出版股份有限公司
台中市駐區辦公室 / 台中市中區中山路 6 號
電 話:(04)2223-0891 傳 真:(04)2223-3549
高雄市駐區辦公室 / 高雄市新興區中山一路 290 號
電 話:(07)2358-702 傳 真:(07)2350-236
※版權所有.欲利用本書全部或部分內容,必須徵求本公司同意※
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066