本書通過一個完整的嵌入式系統(tǒng)設計全過程,向讀者展示嵌入式系統(tǒng)的基本框架,以及設計、編程、調試等技術細節(jié)。書中詳細講述了嵌入式系統(tǒng)中的存儲器、微處理器與微控制器、數據總線與地址總線等基本概念,以及在設計中要考慮的要素。另外還給出了關鍵程序的源代碼,使讀者通過本書學會如何看懂嵌入式系統(tǒng)的原理圖,了解系統(tǒng)是如何工作的,掌握嵌入式系統(tǒng)開發(fā)平臺的主要固件。本書適于從事嵌入式系統(tǒng)研發(fā)的技術人員以及高校相關專業(yè)的師生閱讀。前言嵌入式系統(tǒng)是嵌入到其他產品內部的計算機。奇怪的是,雖然人們知道許多關于編程和計算機的知識,但卻在神秘的嵌入式系統(tǒng)世界中感到迷惑。在嵌入式系統(tǒng)編程世界中,大量的細節(jié)(包括硬件和軟件)使開發(fā)過程像是在探險,甚至感到“難于”生存下來。軟件、硬件、固件到底有何區(qū)別?怎樣將10萬條程序嵌入到比指甲還小的器件中?什么是閃存?為什么需要高速緩存(cache)?任務和進程之間有什么區(qū)別?要不要考慮可重入性?在閱讀這本《嵌入式系統(tǒng)固件揭秘》的過程中,讀者將逐步了解這些問題,不再像起初那樣感到迷惑。嵌入式系統(tǒng)編程覆蓋了從最具體的底層編程到最抽象的高層UNIX編程的各個方面。它引起了近20年來工業(yè)界爆發(fā)的革命性變化。在20世紀70年代后期,匯編程序已被認為是夠豐富多采了。一般的嵌入式系統(tǒng)可以使用小于64Kb(位,不是字節(jié))的系統(tǒng)內存。沒有什么硬件要留給固件開發(fā)者去處理。一般由同一個人完成畫圖、焊接樣品、寫固件,把所有的事拉攏到一起。當Intel公司引入8085芯片時,很明顯那些復雜的微處理器還停留在這個水平上。在20世紀80年代,Motorola與Intel展開了CPU大戰(zhàn),C語言成為了少數敢于用高級語言編程并燒制EPROM的人普遍采用的編程語言。今天,微處理器隨處可見,范圍從在工業(yè)界占主導地位的4位和8位微處理器家族到1GHz的幾乎需要冷卻設備(當然也是由微處理器控制的)冷卻的64位微處理器。多年來,這些系統(tǒng)的復雜度像滾雪球式的增大。工業(yè)界已經從在前臺用二進制代碼對DECPDP機器編程發(fā)展到給烤面包機的微控制器提供面向對象的設計。系統(tǒng)的發(fā)展速度非常迅猛,已有的微處理器、微控制器、RAM、DRAM、SDRAM、管道、超標量體系結構、EPROM、閃存、RISC和CISC、RAS、CAS及高速緩存等,也僅僅是一個開始。現在,從牙刷(不是開玩笑,是事實)到噴氣式戰(zhàn)斗機都由某種微處理器控制著。這種趨勢自然產生許多工具和技術。這些可供選擇的硬件(固件必須使用的集成電路)和軟件(用于建立固件應用程序的工具)使人眼花繚亂。本書的目標是通過一個完整的嵌入式系統(tǒng)設計過程將你帶入真正的嵌入式系統(tǒng)工程。而且,這個工程的源代碼包括一些固件(一個嵌入式啟動平臺),可以簡化你今后的工程。本書使用一個包括CPU、內存及一些外部設備的小硬件系統(tǒng)設計實例,給出了基本原理結構圖并講解如何將指令從內存中取出,同時也將講到設備的概念。本書將講述閃存與EPROM、SRAM與DRAM、微處理器與微控制器、數據總線與地址總線,還將講述如何將C語言和匯編語言源代碼轉換成二進制映像,并裝入設備存儲器中以便在CPU引導(引導閃存)時使用。本書用幾章的內容講述啟動嵌入式系統(tǒng)并執(zhí)行一個應用程序(包括在匯編程序中的基本引導程序)的基本概念,先不涉及句柄、閃存驅動程序、閃存文件系統(tǒng)、串行和以太網連接等。這樣可以使讀者理解嵌入式系統(tǒng)工程如何啟動、如何建立起支持嵌入式系統(tǒng)的平臺。這些聽起來讓人興奮嗎?美妙嗎?恐慌嗎?事實并非如此。本書的目的并不是要討論最新出現的超標量體系結構和在印刷電路板上的銅線所產生的天線輻射效果,也不想涉及高級的抽象設計過程(高級的體系結構和傳輸線的效果固然重要,但這些不是本書的主題)。本書是面向那些不想被一大堆工業(yè)行話和特殊技術細節(jié)所煩惱的、又想盡快了解系統(tǒng)的讀者撰寫的。讀完本書,讀者將學會如何看原理圖、了解引導閃存器件是如何工作的、掌握完整的嵌入式系統(tǒng)開發(fā)平臺的主要組件。本書的本書的讀者應有一些C語言編程經歷和基本的匯編語言概念。本書并不要求讀者有電子技術或硬件知識背景。因此,只要讀者有一些編程知識背景將會發(fā)現本書大有益處。計算機科學或電子工程專業(yè)方面的學生不需要有固件開發(fā)的背景,只要有興趣,就可以從本書中獲益。初級固件開發(fā)者將發(fā)現本書中的例子很有幫助,因為本書中的例子包括文檔和代碼注釋,可以將其擴展到固件開發(fā)平臺。書中將詳細講解引導新硬件和CPU與外部設備的交互方式。涉及到從小文件傳輸協(xié)議(TrivialFileTransferProtocol,TFTP)到以太網的底層引導過程。讀者可以將本書中的代碼或一部分代碼引入到自己的固件平臺中。硬件開發(fā)者將發(fā)現本書講述的平臺有助于在復雜的CPU上分析并調試硬件,也會出于好奇,將注意力從硬件上轉到學習固件過程上。本書提供了不脫離硬件而進入固件學習的起點(硬件設計者會自然地過渡到固件/軟件的編程世界中)。項目主管也會發(fā)現本書非常有用,因為這里呈現的固件包是一個成熟的平臺。這個平臺可廣泛地應用到實時操作系統(tǒng)(RTOS)和目標體系結構中,而且很容易放到新系統(tǒng)中。這個平臺是面向目標的,且獨立于RTOS,這使得它很容易轉到各種目標或RTOS系統(tǒng)中。瀏覽本商品所屬分類圖書計算機/網絡計算機理論