You are on page 1of 70

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.

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 致 謝

的但後來別人閱讀時卻不清楚的地方;感謝 Laurel Muller 將我畫的草圖製成清晰


的圖表。

本試閱檔為五南所有。如欲購買此書,請至五南網站 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 章 嵌入式系統
初探

第4章 中斷 第9章 嵌入式軟體 第 10 章 除錯


第 2 章 軟體技術的
開發工具 技術
硬體基礎

第 3 章 高級硬體基 第 6 章 即時操作系統導論 第5章 軟體體系結


礎 構綜述

第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──整數型別變數(可能包含油罐的數目)。

1 如果所有的程序都能用 C!!來編寫是最好不過的了,但是 C!!的編譯器仍然處於開發階段。

本試閱檔為五南所有。如欲購買此書,請至五南網站 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

5.1 輪轉循環結構(Round-Robin)/ 110


5.2 帶有中斷的輪轉循環結構/ 113
5.3 函數佇列(Function-Queue-Scheduling)調度結構/ 121
5.4 即時操作系統結構/ 122
5.5 軟體結構的選擇/ 125
本章總結/ 125
習 題/ 126

第 6 章 即時操作系統導論 129

6.1 任務(Task)和任務狀態/ 131


6.2 任務和資料/ 137
6.3 旗號(Semaphores)裝置和共用資料/ 146
本章總結/ 159
習 題/ 160

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
目 錄 3

第 7 章 作業系統服務 163

7.1 資訊佇列(Message Queues)、信箱(Mail Boxes)和管道(Pipes)/164


7.2 計時器函數/ 174
7.3 事 件/ 180
7.4 記憶體管理/ 184
7.5 RTOS 環境中的中斷程式/ 188
本章總結/ 194
習 題/ 195

第 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

9.1 宿主機(Host)和目的機(Target)/ 248


9.2 嵌入式系統的鏈結器/定位器/ 251
9.3 把嵌入式軟體加入到目標系統中/ 263
本章總結/ 267

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
4 目 錄

第 10 章 除錯技術 269

10.1 在宿主機上進行測試/ 270


10.2 指令集模擬器(Instrustion Set Simulators)/ 287
10.3 assert 巨集(Macro)/ 289
10.4 使用實驗室裏的工具/ 292
本章總結/ 309
習 題/ 311

第 11 章 一個實例系統 313

11.1 程式是做什麼用的/ 314


11.2 程式運行的環境/ 317
11.3 原始碼(Sonrce Code)指南/ 319
11.4 原始碼/ 322
本章總結/ 375
習 題/ 375

後 記 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)

如同大多數的嵌入式系統一樣, 電報機是不允許崩潰的。儘管用戶似乎
能夠容忍在桌上型上不時地重新啟動系統,但是沒人會對一個崩潰的小塑膠盒
子有耐心的。一個尤其糟糕的情況是,應用軟體可以通過在顯示幕上發消息來
詢問用戶該做些什麼。但是嵌入式系統軟體則沒有這種可能,無論發生什麼,
嵌入式系統軟體都必須在無人干預下運行。

記憶體空間

電報機只有很有限的記憶體,其中 32KB 用於程式,32KB 用於資料。受


成本的制約,記憶體就只能這麼大了。即使記憶體價格便宜了,但是仍然不是
免費的。所以,使系統適應有限的記憶體空間是設計嵌入式系統軟體的工程師

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
6 嵌入式系統入門

必備的技能,這將在下面討論。

程式安裝

電報機軟體的安裝是不能通過滑鼠單擊圖示來完成的。下面將會討論在嵌
入式系統中安裝軟體所需要的特殊工具。

1.1.3 無線條碼掃瞄器(Cordless Bar-Code Scanner)

再來看一個嵌入式系統的例子──無線條碼掃瞄器。使用者一按下開關,
無線條碼掃瞄器就會發射雷射讀取條碼,再通過無線通信元件傳給收銀機(見
圖 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)。占用處理器大量時間的操作使得列
印回應更加困難。

1.1.5 地下油罐監視器(Underground Tank Monitor)

地下油罐監視器用於在加油站監視地下油罐的汽油浮標讀數。它的首要任
務是在加油站因為錯誤而導致毒氣排泄之前探測到泄漏並打開報警響鈴。該系
統具有一個含 16 個按鈕的面板、20 個字元的液晶顯示器,以及一台溫度列印
儀。用戶可以通過按面板上的按鈕,要求系統顯示或列印油罐中的汽油浮標讀
數、當天時間或者系統總狀態。
要得到某一油罐內的汽油儲量,系統先讀取油罐中的兩個浮標的讀數,其
中一個表示的是汽油浮標的讀數,另一個表示的是油罐底部水的讀數。另外,
還要讀取油罐中各個水平層面上的溫度;並考慮到汽油的熱脹冷縮。僅因為熱
脹冷縮而引起的浮標讀數下降的情況,是不用報警的。
除了由於嵌入式系統中成本的頻繁上升所帶來的問題之外,這些都不是困
難。

成本(Cost)

由於加油站的擁有者通常是應政府機構的要求而購買這些系統的,所以希
望系統能儘可能地便宜。因此,系統將被搭建在一個極其便宜的微處理器上,
這個微處理器可能僅僅知道 8 位元數加法而不知道如何有效地使用汽油膨脹係
數。於是,該系統的微處理器將會因計算汽油的儲量而異常地忙碌,而這種計
算將導致處理器過載。
地下油罐監視器的草圖(sketch)見第 8 章圖 8-7。圖 8-6 則列出了監視器
的工作詳細描述。

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
Chapter 1 嵌入式系統初探 9

1.1.6 核反應爐監視器(Nuclear Reactor Monitor)

最後,我們將從這個非常簡單的、假想的控制核反應爐的系統中學到很多
有用的東西。這個假想系統必須能完成很多工作,但是只對用於監視兩個溫度
的代碼部分感興趣,這兩個溫度應該是時刻一致的,如果它們有了差異,則意
味著反應爐發生了故障。後面章節中,我們將會反覆回顧這個系統若干次。

1.2 典型的硬體

如果讀者對常用於嵌入式系統的硬體比較瞭解,就可以跳過本節;否則,
請繼續閱讀關於這些系統中常用硬體的總結。
首先,這些系統都需要有一個微處理器(micro processor)。用於嵌入式系
統的微處理器種類繁多,表 1-1 列出了常用的微處理器系列清單以及它們的特
性。

表 1-1 用於嵌入式系統的微處理器

處理器 匯流排寬度 最大擴展記憶體 內部設備 速度(MIPS)


Zilog Z8 系列 8 64KB(部分) 2 個計時器 1
Intel 8051 系列 8 64KB 3 個計時器 + 1 個序列埠 1
Zilog Z80 系列 8 64KB(部分為 1M) 多樣 2
3 個計時器 + 2 個 DMA
Intel 80188 8 1MB 2
通道
Intel 80386 3 個計時器 + 2 個 DMA
16 64MB 5
系列 通道 +多種其他設備
Motorola
32 4GB 各不相同 10
68000 系列
Motorola
32 64MB 多樣 75
PowerPC 系列
(注意:半導體公司出售的每個微處理器有很多種樣式。表 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

任何時候,電路中的任何信號不是處於高電壓,就是處於低電壓(其實,

1 如果你的系統是用金屬氧化物(MOS)製作的,VCC 可能被叫做 VDD,而接地電壓可能被叫做


VSS。

本試閱檔為五南所有。如欲購買此書,請至五南網站 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.1 反閘(Inverter)、及閘(AND Gate)和或閘(Or Gate)

圖 2-2 指出了硬體設計師在設計概要圖時表示及閘(兩個輸入)的符號。
及閘的輸出(圖右邊的信號)若且唯若兩個輸入都是高電壓時才是高電壓;否
則,一直輸出低電壓。輸入/輸出的真值表如圖 2-2 所示。

輸入 1 輸入 2 輸出
輸入 1 高 高 高
輸出 高 低 低
輸入 2 低 高 低
低 低 低

圖 2-2 及閘

類似地,還有三個甚至多個輸入的及閘,見圖 2-3。若且唯若全部輸入為
高電壓時,其輸出才是高電壓。
圖 2-4 是或閘的符號。若且唯若兩個輸入都是低電壓時,或閘的輸出才是
低電壓;否則,如果有一個輸入是高電壓,輸出就是高電壓。和及閘類似,也
存在多個輸入的或閘。

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
18 嵌入式系統入門

輸入 1 輸入 2 輸出
高 高 高
高 低 高
低 高 高
低 低 低

圖 2-3 多輸入的及閘 圖 2-4 或閘

圖 2-5 是異或閘(XOR Gate)(或者叫反或閘(Exculsire OR Gate))的符


號。若且唯若兩個輸入的電壓不同時,一個異或閘輸出為高電壓。
圖 2-6 是反閘的符號。當輸入為低電壓時,反閘的輸出為高電壓;當輸入
為高電壓時,反閘的輸出為低電壓。

輸入 1 輸入 2 輸出
高 高 低
高 低 高
低 高 高
低 低 低

圖 2-5 異或閘 圖 2-6 反閘

2.2.2 氣泡(The Bubble)

反閘中輸出信號上的小圓圈(或稱氣泡)表示對輸出取反,這個符號也可
以在其他電路閘中使用。例如,圖 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-8 輸入取反的或閘 圖 2-9 另一種反閘

而在實際的電路製造過程中,不管設計師在概要圖中使用了何種符號,製
造商都會使用同一種反閘。為什麼設計師喜歡用不同的符號呢?有的設計工程
師可能會用圖 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 嵌入式系統入門

Assembler 組譯器 76, 250


cross-assembler 交叉組譯器 250
assembler 彙編器 91
Assembly language 組合語言 47
asserted 有效 38
asserted 確立有效 16
Atomic section 原子的 91
Audit trail 審計跟蹤 271
auxiliary circuit 輔助電路 65
Auxiliary circuit on microprocessor 微處理器輔助電路 65
address decoding ~~的位址解碼 67
DMA channel ~~DMA 通道 56
I/O pin ~~I/O 引腳 66
timer ~~計時器 64~65, 176

background debng monitor(BDM) 背景模式除錯監視器 309


bad framing 資料訊框錯誤 58
bad parity 奇偶錯誤 58
Bar-code scanner 條碼掃瞄器 6
BDM 309
Bell 鐘 225~226
Big-endian system 高位元儲存系統 286
black dot 黑點 7
black package 黑色包裝盒 14
Blocked 阻塞 132~133
Board 開發板 10, 14, 177
bomb icon 警告框 270
Boolean flag 布林標誌位元 181
boot-up time 啟動階段 130
Breakpoint 中斷點 287

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 383

Bridge 橋接器 115


Bsps board suppore package 電路板支援包 177
Buffer 緩衝區 23, 185, 207
Bug 錯誤 參見 Debugging; Shared-data problem 140
built-in DMA 內建 DMA 59
Built-in on microprocessor 內建的微處理器 65
address decoding ~~的位址解碼 67
DMA channel ~~的 DMA 通道 56
I/O pin ~~的 I/O 引腳 73
timer ~~的計時器 64~65, 176
bus cycle 匯流排週期 49
bus fight 匯流排競爭 17
bus handshaking 匯流排信號交換 49
Bus 匯流排 43~44, 49, 53~54
bute-oriented 位元組導向 171
bytes 位元組 24

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 嵌入式系統入門

PROM programmer 可編程唯讀記憶體編程器~~ 263


ROM emulator ROM 模擬器~~ 264
Digital multimeter 數位萬用表 110
Direct Memory Access(DMA) 直接記憶體存取 52
discrete 獨立單元 17
Disk drive 光碟驅動器 11
Display 顯示 143~144
DMA channel DMA 通道 56
DMA direct memory access,直接記憶體存取 9, 52~56, 59, 66, 72, 203, 243
dormant 睡眠 132
Dot 點 7, 24
Drive 驅動 15
Driver 驅動器 23, 131
tri-state 三態~~ 23
dynamic 動態 37
dynamic RAM refresh 動態 RAM 刷新器 37

Edge triggered DMA 邊緣觸發 DMA 54


Edge 邊緣 signal 28
edgetnggered 邊緣觸發 54
EEROM(Electrically Erasable Read-Only Memory) 電可擦除式唯讀記憶體
67, 73
electrical box 電子技術盒 264
Electrically Erasable Read-Only Memory 電擦寫唯讀記憶體 36
embeded system 嵌入式系統 2
Emulators 模擬器 264
in-circuit 電路內的~~ 265, 303
ROM 唯讀記憶體~~ 42~46, 49~50, 52, 57, 59~60, 67, 72~73, 253, 262, 264,
288, 294, 297, 301, 304, 306, 308~309
Encapsulation 構裝 203, 211

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 387

queue 佇列~~ 110, 164~165, 172~173, 212, 234


semaphore 旗號~~ 146~148, 152~153, 156~158, 161, 189
Encryption 加密技術 116
EPROM(Erasable Programmable Read-Only Memory) 可擦除式唯讀記憶體
35, 266
EPROM eraser 可擦除式唯讀記憶體擦除器 35
Equations 等式 PAL 相位交替 60
error 錯誤資訊 166
Event 事件 2, 149, 164, 172, 181
logic analyzer 邏輯分析儀~~ 297
Exculsire OR Gate 反或閘 18
external event 外部事件 2

Fair warning 公平警告 191


falling edge 下降沿 28
fast software 快速軟體 243
Fast code 快速程式碼 237
fast software 快速軟體 243
Field-Programmable Gate Array (FPGA) 可編程閘陣列 63
FiFO (first-In-First-Out) buffer 先進先出暫存 59, 73
file manager 文件管理器 131
filter 篩檢程式 302
fix up 安排 253
Flag 標誌 113, 181
flash memory 快閃記憶體 35
programming ~~的編程 4, 379
Flip-Flop 觸發器 28
float level meter 浮筒液位元計 45
Float 浮點數 315
Floating Signalsior, Multiply Driven Signal 浮動信號(多驅動信號) 24

本試閱檔為五南所有。如欲購買此書,請至五南網站 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

Gary Area 模糊地帶 144


Gates 閘 17
gauge 判斷 241
General-purpose register 通用暫存器 77
global dara 全域資料 137
Glue circuitry 連接電路 gotoxy function gotoxy 函數 59
glue circuitry 膠合電路 59
groud tead 地線 294
ground pin 接地接腳 20
ground voltage 接地電壓 15
Group 組 183~184
groups 一組事件 181

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

FPGA 可編程閘陣列~~ 63~64


gate ~~閘 17~18, 63
memory 記憶體 參 見 Memory 10, 32, 34~37, 46~47, 52, 68, 130, 166,
185~186, 218, 265
microprocessor 微處理器 參見 Microprocessor 42
Programmable Array Logic 可編程陣列邏輯 59~60
UART ~~通用非同步發送/接收裝置 57~60, 69, 72~73, 243, 286, 302, 305, 311
watchdog timer ~~看門狗計時器 64
Heartbeat timer ~~心跳計時器 176
high-impedance state 高阻抗狀態 23
Hold Time 保持時間 29
Host machine 宿主機 248

I/O address space I/O 位址空間 47


I/O device I/O 設備 24
I/O drivers I/O 驅動器 131
I/O pin I/O 引腳 66
ICE(in-circuit emulator) 電路內模擬器 303
icon 標識 5
idle 空閒狀態 206
In-Circuit emulator(ICE) 在線模擬器 303
Inheritance 繼承 priority 優先順序~~ 150
Initialized 初始化 137
message queue 資訊佇列~~ 164
semaphore 旗號~~ 140, 152, 158, 161, 189
Initialized data 初始化資料 137
inputs 輸入 16
instruction pipeline 內部指令管線 68
Instruction pipeline 指令管線 68
Instruction 指令 68, 78, 257

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
390 嵌入式系統入門

disassembling 分解~~ 301


Instrustion Set Simulators 指令集模擬器或者模擬器 287
Interrupt handler 中斷處理程式 81
Interrupt latency 中斷延遲 98
interrupt nesting 中斷巢狀箝套 85
Interrupt request(IRQ) 中斷請求 56
Interrupt vector table 中段向量表 84
Interrupt vector 中斷向量 84
Interrupts 中斷 56
inverse 反置 28
Inversion 反轉 priority 優先順序~~ 156
Inverter 及閘 17
IRQ(interrupt request) 中斷請求 56
ISR(Interrupt service routine) 中斷服務程式 參見 Interrupt and interrupt routine
81

Jump instruction 跳轉指令 78


Jumper 跳線 69

KB memory size KB 記憶體容量 33n


Kernel 內核 參見 Real-time operating system(RTOS) architecture; Debugging
kernels 130
Keyboard 鍵盤 10
map ~~映射 46, 260

Laser engine 雷射器 7


Laser printer 雷射印表機 7
latch 鎖 28

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 391

Latche 鎖存器 30 Latency 延遲 參見 Interrupt latency


layout 布局 15
LED 二極體 66
level task 油量任務 147
level triggered 電位水平觸發 54
library 編譯庫 47
Light-emitting diode 發光二極體 10
liieter 不穩定性(Jn) 238
line for transmitting bits 位元輸線 58
line for veceiving bits 位元收線 58
linfinite loop 無限循環 216
linker 連接器 239
Linker/locator 鏈結器/定位器 參見 Locator 251
listing 列表 240
little-endian 低位元儲存 286
Loader 載入器 address resolution by 位址解析~~ 251, 253
loading problem 負載問題 26
Locator Maps 定位器映射 260
Locator 定位器 239, 251, 260
map ~映射 46, 260
log 日誌 215
Logic analyzer 邏輯分析儀 297
Low-power mode 低壓模式 242

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 嵌入式系統入門

Masked ROM 光罩 ROM 34, 36


Memory 記憶體 2, 8, 10, 32, 35~37, 130, 166, 185, 265
mapping 映射~~ 46, 166, 185
overlay 覆蓋~~ 265
RAM 隨機記憶體 參見 Random Access Memory 42, 46, 49~50, 52~54, 57,
59~60, 62, 67, 69, 72~73, 238, 242~243
ROM 唯讀記憶體 參見 Read-Only Memory (ROM) 32~38, 42~46, 49~50,
52, 57, 59~60, 62, 67, 72~73, 238~239, 241, 243, 253, 262, 264
for Telegraph system 電報系統~~ 5
memory address space 記憶體位址空間 47
Memory cache on microprocessor 微處理器的記憶體暫存 74~75
Memory Caches 記憶體緩存 68
memory managemeut 記憶體管理器 130
memory mapping 記憶體映射 46
menmory leak 記憶體泄漏 218
message box 對話方塊 5
Message queue 資訊佇列 164
Meter 儀錶 45
micro controller 微控制器 42
micro processor 微處理器 9, 42
modem 數據機 10
Modularity 模組化 task for ~~任務 203
module 模組 143
Monitor 監視器 38~9, 309
Multimeter 萬用表 110
Multiple semaphore 多旗標 153
Multiply driven signal 多驅動信號 24
Mutex semaphore 互斥旗號 158

NAND gate 反及閘 18

本試閱檔為五南所有。如欲購買此書,請至五南網站 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 嵌入式系統入門

Overlay memory 覆蓋記憶體 265


OVERLOADED signal 過載信號 25

Package 構裝 14, 177


paper Jam 卡紙 7
PAL equation PAL 等式 60
PAL Programer PAL 編程器 60
PAL(Programmable Array Logic) 可編程閘陣列邏輯 60~64, 72
passage of time 時間路徑 174
pended 擱置 132
Peripheral 外部設備 65
Pin 引腳 14
Pipeline 管線 68
PLD Programmable Logic Device,可編程邏輯設備 59~60, 72
Pointer 指標 77, 142~143, 191, 207
poll 輪詢 125
POP 獲取最頂端資料後調整資料指標 79
POP 指令 79
POSIX standard POSIX 標準 131
post 放入 164
Power Consumption 耗能 7
debugging ~~除錯 306
power pin 供電接腳 20
predictable 可預見性 238
Preemptive real-time operating system 搶占式即時操作系統 134
Preemptive 搶占式 134
Printed circuit board 印刷電路板 14
Priority inheritance 優先順序繼承 156
Priority inversion 優先順序反轉 156
priority 優先順序 84

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 395

private data stmctare 私有資料結構 137


probe 探針 112
Processor Hogs 處理器過載 7
Process 進程 145
Program counter 程式計數器 77
Programmable Array Logic 可編程閘陣列邏輯,PAL 59~60
Programmable Read-Only Memory(PROM) 可編程唯讀記憶體 34
programming 編程 4
progress 進程 137
PROM programmer PROM 程式師 263
PRON bumer PROM 燒錄機 34
Propagation delay 傳播延遲 28
pseudo code 虛擬程式碼 111
pull up resistor 上拉電阻 22
pulse 脈衝 42
PUSH instruction 壓入堆疊指令 79
PUSH 壓入堆疊 79

Queue 佇列 110, 212, 234


message ~~資訊 5, 164

Random Access Memory(RAM) 隨機存取記憶體 37


address space for ~~的位址空間 37
characteristic of ~~特性 37
read enable signal 讀使能信號 32
Read-Only Memory 唯讀記憶體 32
real-time operating system 即時操作系統 110, 130
Reduced Instruction Set Computer(RISC)system 精簡指令集計算機系統 68
debugging ~~除錯 306

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
396 嵌入式系統入門

Reentrancy 可重入 141


Register 暫存器 28
regular memory 普通記憶體 10
Reliability 可靠性 5
Request to send 發送請求 58
reset 重啟 16
Resetting event 重啟事件 16
Resistor 電阻~~ 22
Resource semaphore 儲存旗號 158
Response 回應 4
Response time 回應時間 287
restoring the context 恢復上下文 83
RISC (Reduced Instruction Set Computer) system 精簡指令集計算機系統 68
debugging ~~的除錯 306
Rising edge 上升邊緣 28
ROM emulator 唯讀記憶體模擬器 264
ROM 唯讀記憶體 參見 Read-Only Memory(ROM) 32~38, 42~46, 49~50, 52,
57, 59~60, 62, 67, 72~73, 161~162, 238~239, 241, 243, 253, 262, 264, 288, 294, 297,
301, 304, 306, 308~309
Round-Robin 輪轉循環結構 110
RTOS system design 即時操作系統設計 參見 Real-time operating system(RTOS)
architecture 110, 130

saving the context 保存上下文 83


Scaffold software 支架軟體 272
Scheduler 排程程式 132
Schematic diagram 概要圖 15
segments 分段 254
self-locked 自行參照鎖定的 301
semaphore variants 旗號變數 158

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 397

semaphore 互斥量 158


Semaphore 旗號 140, 146, 152, 158, 161
multiple 多~~ 153
Semaphores 旗號裝置 146
semiconductor 半導體 14
sensor 感測器 10
serial interface 串列介面 57
Serial port task 序列埠任務 2
serial port to network 串列網路介面 2
serial port 序列埠 2
serif 襯線 8
Setup Time 建立時間 29
shared-function 共用函數 141
Signal 信號 42~43, 45, 49
floating 浮動~~ 16, 24
loading 載入~~ 25
Signal loading 信號負載 25
Signaling device 信號設備 semaphore as ~~作為旗號 153
simultaneous 並行 5
single-step debug 逐步除錯 287
sketch 草圖 8
Sleep mode 睡眠模式 242
Socket 插槽 263
Soft real-time system 軟體即時系統的~~ 203
Sonrce code 原始碼 319
speed 速度 4
Stack 堆疊 77
Stack pointer 堆疊指標 77
Standby mode 待機模式 242
State 狀態 參見 Task and task state 51, 301
Static RAM 靜態 RAM 37

本試閱檔為五南所有。如欲購買此書,請至五南網站 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

tail pointer 尾指標 207


Target agent 目標代理 306
Target machine 目的機 248
Task code 任務程式碼 81
Terminology 術語 14
Test vector 檢測向量 62
Testing 測試 125
Testability 易測性 4
The Bubble 氣泡 18
Thread 線程 137
Throughput 吞吐量 4
Tick 嘀嗒 176
Time-slicing 時間片 218
time-out 超時性能 170
Timers 計時器 65
Timing 時鐘 49
Timing diagram 時序圖 27
timing problem 時序問題 49
Tool 工具 development 開發~~ 參見 Development tool 248~249, 251

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
英文索引 399

trace 追蹤紀錄 301


traol-off 權衡 171
trigger event 開關事件觸發 181
tri-state driver 三態驅動器 23
Tri-Stating Outputs 三態輸出 21
tri-stating 三態 23
Trigger 觸發器 54, 181

UART(Universal Asynchronous Receiver/Transmitter) 通用非同步發送/接收裝


置 57, 243
C/OS(參見本節以「M」開頭處的 section in this index) 作業系
統 166, 317~320
Ugly Detail 隱密的細節 166
Underground Tank Monitor 地下油罐監視器 8
uninitialized 非初始化 137
Universal Asynchronous Receiver/Transmitter(UART) 通用非同步發送/接收裝
置 57

variable scope 變數範圍 138


Variable 變數 138, 241
Vector 向量 62, 84
interrupt ~~中斷 56, 84, 110, 162
test 測試~~ 62, 125, 189
Vernel 內核 130
volati1e keyword volati1e 關鍵字 96
Voltage Connected to Collector (VCC) voltage 把電壓接到集電極電壓上 15
Voltage 電壓 15
Voltmeter 伏特表 292

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
400 嵌入式系統入門

WAIT signal WAIT 信號 49


Wait Signals 等待信號 49
Wait state generator 等待狀態發生器 51
waiting 等待 132
Wariable Storngl 變數儲存 142
Watchdog timer 看門狗定時器 64
Witches’ cap 巫師帽 294
Workstation 工作站 248
Write enable signal 使能寫信號線 38

XOR Gate 異或閘 18

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 401

中文索引
一劃

一組事件 groups 181

二劃

二極體 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

四劃

不可重入 not reenerant 141


不可遮罩中斷 nonmaskable interrupt 83
不穩定性(Jn) liieter 238
中斷 Interrupts 56
中斷向量 interrupt rector 84
中斷向量表 interrupt vector table 84
中斷延遲 Interrput Latency 98
中斷服務程式 interrupt service routine 81
中斷巢狀箝套 Nested Inferrupts 85, 193

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
402 嵌入式系統入門

中斷處理程式 interrupt handler 81


中斷程式 interrupt routine 81
中斷請求(或 IRQ) interrupe request 56
中斷點 breakpoint 287
互斥量 semaphore 158
互斥旗號 mutex semaphore 158
內建 DMA built-in DMA 59
內核 Vernel 130
內部指令管線 instruction pipeline 68
公平警告 Fair warning 191
分段 segments 254
反及閘(not- AND Gate) NAND Gate 18
反或閘 Exculsire OR Gate 18
反置 inverse 28
反閘 Inverter 17
反編譯 disassembling 301
引腳 pin 14
心跳計時器 heartbeat timer 176
文件管理器 file manager 131
日誌 log 215
加密程式 encryption 116

五劃

半導體 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

可編程邏輯陣列 Programmable Array Logic, PAL 59~60


可編程邏輯設備 Programmable Logic Devices, PLD 59
可靠性 Reliability 5
可擦可編程唯讀記憶體 EPROM 266
可讀寫可編程唯讀記憶體 Erasable Programming Read-Only Memory 35
卡紙 paper jam 7
外部事件 external event 2
外部設備 Peripheral 65
巨集 Macro 287
布局 layout 15
布林旗標 Boolean flag 181
本地工具 native tool 248
本地組譯器 native assembler 250
目的機 Target 248
目的機代理程式 target agent 306
示波器 Oscilloscopes 293
示意圖 Schematics 68

六劃

交叉編譯器 cross-compiler 240


休眠模式 sleep mode 242
伏特表 Voltmeter 292
任務 Task 131
任務程式碼 task code 81
光碟驅動器 disk drive 11
全域資料 global dara 137
共用函數 shared-function 141
共用資料問題(或稱為資料共用問題) Shared-Data Problem 86
列表 listing 240
印刷電路板 Printed circuit board 14
回應 Response 4

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
404 嵌入式系統入門

回應時間 response 287


地下油罐監視器 Underground Tank Monitor 8
地線 groud tead 294
在線模擬器 In-Circuit Emulator 303
多個旗號 multiple semaphores 153
字元 character 116
字串 String 142
安排 fix up 253
成本 Cost 8
有效 asserted 38
自行參照鎖定的 self-locked 301

七劃

串列介面 serial interface 57


串列網路介面 serial port to network 2
位元收線 line for veceiving bits 58
位元組 bytes 24
位元組導向 bute-oriented 171
位元輸線 line for transmitting bits 58
位址空間 address space 44
位址空間 address range 46
位址信號 address signals 32
位址信號線集合 address signal 42
位址匯流排 address bus 43
位址解析 Addiess Resolution 251
位址解碼 Address Decoding 67
佇列 Message Queues 116, 164
作業系統介面標準 131
低功耗模式 low-power mode 242
低位元儲存 little-endian 286
判斷 gauge 241

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 405

即時內核 real-time kemel 130


即時操作系統(real-time-operating-system)的首字母「RTOS」作為簡稱 110,
130
吞吐量 Throughput 4
尾指標 tail pointer 207
巫師帽 witches’ caps 294
序列埠 serial port 2
快閃記憶體 flash memory 35
快速軟體 fast software 243
私有資料結構 private data stmctare 137
系統嘀嗒 system ticks 176

八劃

並行 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 嵌入式系統入門

空指標 Null 170


空閒狀態 idle 206
空閒模式 oidle mode 242
初始化 initialized 137
阻塞(block)為「轉為阻塞狀態」 132, 133
非法電壓 not allowed voltage 16
非初始化 uninitialized 137
非搶占式 nonpreemptive 134

九劃

信號交換 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

十劃

原子的 Atomic section 91

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 407

原始碼 Sonrce code 319


振盪器 oscillators 31
時序問題 timing problem 49
時序圖 Timing Diagrams 27
時脈 Clock 30
時脈信號沿上發生 clocked 62
時間分段 Time slicing 218
時間路徑 passage of time 174
核 core 63
核反應爐監視器 Nuclear Reactor Monitor 9
氣泡 The Bubble 18
浮動 floating 16
浮動信號(或稱為多驅動信號) Floating Signalslor Multiply Driven Signal 24
浮筒液位元計 float level meter 45
浮點數 Float 315
特定應用積體電路 Application-Specific Integrated Circuits, ASIC 63
耗能 Power Consumption 7
脈衝 pulse 42
草圖 sketch 8
記憶體位址 memory address space 47
記憶體泄漏 menmory leak 218
記憶體映射 memory mapping 46
記憶體管理器 memory managemeut 130
記憶體緩存 Memory Caches 68
記憶體儲存池 pool 185
追蹤紀錄 trace 301
配置記憶體 allocate memory 166
除錯 debug 125
除錯內核 debugging kernel 306
高位元儲存 big-endian 286
高阻抗狀態 high-impedance state 23

本試閱檔為五南所有。如欲購買此書,請至五南網站 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

通信橋接器 communication bridge 115


通信鏈結 communication link 116
連接器 Connectors 68
連接器 linker 239
速度 speed 4
逐步除錯 single-step debug 287

十二劃

最深的組合 deepest combination 239


單晶片系統 System on a Chip, SoC 305
嵌入式系統 embedded system 2
插槽 socket 263
普通記憶體 regular memory 10
晶片 chip 14
晶片夾式拉出器 chip puller 263
晶片啟動(CE/)信號 chip enable signal 45
晶片啟動信號 chip enable signal 32
晶片選擇信號 chip select signal 32
測試 test 125
測試支架軟體 Scaffold software 272
無指定類型 void 168
無限循環 linfinite loop 216
無線條碼掃瞄器 Cordless Bar-Code Scanner 6
發光二極體 light-emitting diodes 10
發送終止(clear-to-send)CTS 58
發送請求 Request to send 58
硬即時系統 Hard Real-Time Systems 203
硬體相關 hard ware-dependent 272
硬體無關 hard ware-ind ependent 272
硬體概要圖 hard ware schematic diagram 14
程式計數器 program counter 77

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
410 嵌入式系統入門

程式碼片段 code fragment 46


等待 waiting 132
等待狀態發生器 wait state generator 51
等待信號 Wait Signals 49
結構 Structure 203
虛擬程式碼 pseudo code 111
超時性能 time-out 170
進程 progress 137
開放收集器 Open collector 16, 21
開關事件觸發 trigger event 181
集電極電壓 Voltage Connected to Collector, VCC 15
黑色包裝盒 black package 14
黑點 black dot 7
傳播延遲 propagation delay 28
傳輸埠 communication port 7

十三劃

匯流排 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

資料信號 data signal 32


資料信號線集合 data signal 42
資料訊框錯誤 bad framing 58
資料匯流排 data bus 44
資料線 address lines 33
資訊佇列 Message Queues 164
資源旗號 resource semaphore 158
跳線 jumpers 69
跳轉指令 jump instruction 78
載入問題 loading problem 26
運行 run 為「進入運行狀態」 133
過載信號 OVERLOADED signal 25
閘 AND Gate 17
電子技術盒 electrical box 264
電位水平觸發 level triggered 54
電容 capacitor 20~21
電晶體 crystals 31
電路內模擬程式 in-circuit emulator 265
電路內模擬器 in-circuit emulator 265
電路板支援包 Bsps board suppore package 177
電路閘 Gates 17
電擦寫唯讀記憶體 Electrically Erasable Read-Only Memory 36

十四劃

嘀嗒 tick time 176


對話方塊 message box 5
截止時間 deadline 113
旗號 Semaphore 146
旗號裝置 Semaphores 146
旗號變數 semaphore variants 158
構裝 Encapsulation 203

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
412 嵌入式系統入門

睡眠 dormant 132
管道 Pipes 164
網路介面 netmork interface 10
網路資料框 network frame 3
輔助電路 auxiliary circuit 65

十五劃

審計跟蹤 audit trail 271


數位萬用表 digital multimeter 110
數據機 modem 10
暫存器 register 28
暫停 suspend 132
標誌 flag 113
標識 icon 5
模組 module 143
模組化 Modularity 203
模糊地帶 Gary Area 144
模擬器 emulator 264
歐姆表 Ohm meter 292
確立有效 asserted 16
編程 programming 4
編寫快速程式碼 fast code 237
編碼 coding 168
編譯庫 library 47
線程 Thread 137
緩衝 buffer 23
膠合電路 glue circuitry 59
輪詢 poll 125
輪轉循環結構 Round-Robin 110

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
中文索引 413

十六劃

橋接器 Bridge 115


獨立單元 discrete 17
篩檢程式 filter 302
輸入 inputs 16
輸出 outputs 16
選通脈衝 strobe 42
錯誤資訊 error 166
隨機存取記憶體 Random Access Memory 37
靜態 static 37
靜態資料 static data 137

十七劃

優先順序 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

十八劃

歸位 CR: carriage return 206


覆蓋記憶體 overlay memory 265
轉換 switch 為「處於運行狀態的任務的調換」 133

本試閱檔為五南所有。如欲購買此書,請至五南網站 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

二十三劃

變數範圍 variable scope 138


變數儲存 Wariable Storngl 142
邏輯分析儀 Logic Analyzers 297

本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066
國家圖書館出版品預行編目資料

嵌入式系統入門/ David E. Simon 著;陳向


群等譯—初版.—臺北市:五南, 2006 [民 95]
面; 公分.
譯自:An embedded software primer
I S B N 978-957-11-4358-3(平裝)
I S B N 957-11-4358-8
1.系統程式設計 2.軟體研發
5D59
312.952 95009938

嵌入式系統入門
作 者 - 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

法律顧問 得力商務律師事務所 張澤平律師

出版日期 2006 年 8 月初版一刷


定 價 新臺幣 580 元

※版權所有.欲利用本書全部或部分內容,必須徵求本公司同意※
本試閱檔為五南所有。如欲購買此書,請至五南網站 www.wunan.com.tw
或來電(02)2705-5066

You might also like