出版時間:2009-1 出版社:北京航空航天大學(xué)出版社 作者:張邦術(shù) 頁數(shù):270
Tag標(biāo)簽:無
前言
硬件技術(shù)的飛速發(fā)展,使硬件的性能顯著提高,并且成本極速降低。微處理器已經(jīng)深入到人們生活和生產(chǎn)的各個領(lǐng)域,各種產(chǎn)品和設(shè)備都逐漸增加了復(fù)雜的智能化功能,使得消費類電子產(chǎn)品、個人媒體產(chǎn)品、個人數(shù)字助理以及工業(yè)控制等領(lǐng)域得以快速發(fā)展。隨著這些產(chǎn)品的高度智能化和復(fù)雜化,嵌入式軟件的需求得到迅猛發(fā)展。從單片機的控制軟件,到功能強大的多任務(wù)實時操作系統(tǒng)平臺,產(chǎn)品的智能化程度越來越高,易用性越來越好,嵌入式軟件及其應(yīng)用領(lǐng)域越來越廣泛,從而對嵌入式軟件的要求也變得越來越復(fù)雜。本書旨在為嵌入式軟件開發(fā)愛好者提供一個入門的引導(dǎo)。面對復(fù)雜的嵌入式系統(tǒng)軟件,作為一位初學(xué)者,如何清楚把握嵌入式軟件的設(shè)計對象與目標(biāo),如何尋找一個很好的切入點,盡快參與到嵌入式軟件的設(shè)計當(dāng)中,對于這些問題,希望通過本書的講解,能夠為讀者提供一些有益的啟示。筆者多年來一直在嵌入式軟件領(lǐng)域從事實際項目的開發(fā)工作,出于對軟件設(shè)計的執(zhí)著與偏愛,筆者把這些年從事嵌入式軟件設(shè)計的經(jīng)驗點滴整理出來,與更多的嵌入式軟件設(shè)計愛好者分享。目前,盡管介紹嵌入式軟件設(shè)計方面的書籍較多,但全面、系統(tǒng)地討論如何從頭開始設(shè)計嵌入式系統(tǒng)軟件的書籍卻很少。很多嵌入式軟件設(shè)計方面的書籍都是一些諸如百科全書的參考手冊,由于體系過于龐大,或討論過于專業(yè),初學(xué)者很難在短時間內(nèi)把握其中有用的部分,因而更難將龐大體系里各書籍中的精華串到一起,而本書正是這些書籍精華的一種提煉。本書以講述的方式,深入剖析嵌入式系統(tǒng)軟件設(shè)計的各個層面,以及設(shè)計實踐中的各個關(guān)鍵之事,以幫助讀者輕松地領(lǐng)會嵌入式軟件設(shè)計的方法,掌握嵌入式軟件的核心架構(gòu)。書中通過對嵌入式系統(tǒng)的分解,重點講述嵌入式系統(tǒng)軟件的層次結(jié)構(gòu)。通過對目前多個主流系統(tǒng)(VxWorks,Linux,WinCE)內(nèi)核進行深入淺出的剖析與對比,幫助讀者建立起正確的驅(qū)動設(shè)計模型;通過對不同硬件平臺(MIPS,ARM)所開發(fā)的板級支持包(BSP)的深入討論,幫助讀者掌握硬件適配層(OAL)設(shè)計的核心概念,使讀者清楚理解系統(tǒng)環(huán)境的上下文,前因后果,從而更好地把握各個軟件模塊設(shè)計的分界與接口,把握設(shè)計的對象與目標(biāo),在設(shè)計中做到心中有數(shù),目標(biāo)明確,從而更好、更快地解決問題。要想成為一名成功的嵌入式軟件程序員,程序的設(shè)計能力是首要的技能。如何打好程序設(shè)計基礎(chǔ),如何編寫工程化的程序,如何在設(shè)計中與團隊協(xié)作開發(fā)、在后續(xù)開發(fā)中有效地升級與維護,如何編寫規(guī)范的文檔等,這些都是工程化軟件設(shè)計中非常關(guān)鍵的環(huán)節(jié),本書花費大量篇幅進行介紹,以幫助讀者提高程序設(shè)計能力。書中從各種復(fù)雜的軟件系統(tǒng)中抽象出驅(qū)動模型和板級支持包的設(shè)計模型;對于硬件基礎(chǔ),也通過模型化的方法講述了總線的一般概念與作用,抽象出輸入/輸出設(shè)備的模型。通過這些模型化的講解,便于讀者掌握嵌入式軟件設(shè)計的目標(biāo)與內(nèi)容,從而提高軟件設(shè)計能力。1. 讀者對象本書的讀者對象為嵌入式程序設(shè)計的初學(xué)者,本書也可作為大中專學(xué)生學(xué)習(xí)嵌入式軟件設(shè)計的入門參考。對于那些已從事嵌入式軟件設(shè)計一段時間,但是在設(shè)計實踐中感覺力不從心,需要全面掌握嵌入式軟件設(shè)計內(nèi)容與目標(biāo),掌握一些新的技巧與方法的讀者,相信本書將會起到良師益友的作用。本書也可以作為嵌入式軟件培訓(xùn)的教材。2. 題材與組織本書共分為四篇,其中第一篇著重討論作為一名優(yōu)秀的嵌入式軟件設(shè)計人員所必備的知識和技能。需要說明的是:限于時間和精力,本書沒能全面囊括嵌入式軟件設(shè)計的所有知識點和技術(shù)面,但希望本書能讓讀者掌握基本的框架,使讀者在今后的學(xué)習(xí)和工作實踐中,更好地結(jié)合優(yōu)秀讀物和參考資料,不斷學(xué)習(xí)和實踐,從而提高自身的軟件設(shè)計能力和水平。
內(nèi)容概要
本書從教學(xué)的角度出發(fā),全面討論了嵌入式軟件設(shè)計的思想與方法。在編排上循序漸進,從基礎(chǔ)準(zhǔn)備,到驅(qū)動模型,再深入到整個系統(tǒng)及系統(tǒng)的構(gòu)建。在講解上通過建立模型來幫助讀者系統(tǒng)掌握嵌入式軟件設(shè)計的普遍原理與編程接口。內(nèi)容包括:高效、穩(wěn)定和規(guī)范的程序基礎(chǔ),多任務(wù)環(huán)境,I/O系統(tǒng)的內(nèi)部結(jié)構(gòu),驅(qū)動模型,BSP設(shè)計要素,嵌入式軟件設(shè)計的經(jīng)驗技巧;在硬件基礎(chǔ)方面討論了總線與設(shè)備的模型,基于MIPS和ARM SoC在多個系統(tǒng)平臺VxWorks,Lnux及WinCE下的系統(tǒng)資源的操控。 本書可作為在校學(xué)生學(xué)習(xí)嵌入式軟件設(shè)計原理的教學(xué)參考用書,也可作為嵌入式軟件開發(fā)工程人員深入掌握系統(tǒng)軟件設(shè)計的指南,以及嵌入式軟件培訓(xùn)的參考教材。
作者簡介
張邦術(shù),1999年畢業(yè)于電子科技大學(xué),先后在聯(lián)想、泰鼎、微開和泰克公司從事近10年嵌入式軟件及系統(tǒng)軟件的研發(fā)工作,在VxWorks,Linux和WinCE系統(tǒng)平臺上的開發(fā),以及在音/視頻、移動媒體、測試儀器等領(lǐng)域具有豐富的設(shè)計經(jīng)驗,在軟件團隊的組建、培訓(xùn)和項目管理等方面積累了大量經(jīng)驗。
書籍目錄
第一篇 基礎(chǔ)方法篇 第1章 程序基礎(chǔ) 1.1 設(shè)計高性能程序的必要性 1.1.1 設(shè)計高性能程序的必要性 1.1.2 嵌入式軟件的設(shè)計范疇 1.1.3 嵌入式軟件的分層結(jié)構(gòu) 1.2 嵌入式軟件的程序設(shè)計要求 1.2.1 代碼結(jié)果的要求 1.2.2 代碼形式的要求 1.3 嵌入式軟件開發(fā)的基本思路和原則 1.3.1 系統(tǒng)分析,定義接口 1.3.2 函數(shù)實現(xiàn),優(yōu)化算法 1.3.3 清理代碼,補充注釋 1.3.4 測試修訂,完善文檔 1.4 程序?qū)嵗饰? 1.4.1 正確理解?!? 1.4.2 內(nèi)存泄漏 1.4.3 消除編譯依賴 1.4.4 消除潛在隱患 1.4.5 規(guī)范實現(xiàn)范例 1.4.6 性能優(yōu)化 1.5 程序設(shè)計其他注意點 1.5.1 謹(jǐn)慎使用“宏” 1.5.2 正確理解預(yù)定義宏 1.5.3 避免歧義 第2章 多任務(wù)操作系統(tǒng) 2.1 板級支持包 2.2 嵌入式操作系統(tǒng)與實時性 2.2.1 嵌入式操作系統(tǒng) 2.2.2 實時操作系統(tǒng) 2.3 多任務(wù)概述 2.3.1 進程、線程與任務(wù) 2.3.2 何時需要多任務(wù) 2.3.3 任務(wù)狀態(tài)的轉(zhuǎn)換 2.3.4 進程調(diào)度與調(diào)試算法 2.3.5 任務(wù)相關(guān)的API 2.4 進程間共享代碼與可重入性 2.4.1 共享代碼 2.4.2 共享代碼可重人性問題 2.4.3 使用私有數(shù)據(jù) 2.4.4 使用臨界區(qū)數(shù)據(jù) 2.5 線程間通信 2.5.1 共享數(shù)據(jù)結(jié)構(gòu) 2.5.2 互斥 2.5.3 信號量 2.5.4 臨界區(qū)與信號量的實現(xiàn)實例 第3章 硬件基礎(chǔ) 3.1 ARM 3.1.1 ARM編程模式 3.1.2 ARM指令概述 3.1.3 ARM異常及處理 3.2 MIPS 3.2.1 MIPS編程模式 3.2.2 MIPS指令概述 3.2.3 MIPS中斷與異常 3.3 接口基礎(chǔ) 3.3.1 總線概述 3.3.2 I2C總線 3.3.3 PCI總線 3.3.4 設(shè)備模型 3.3.5 一個IDE控制器設(shè)備實例第二篇 驅(qū)動模型篇 第4章 驅(qū)動的通用模型 第5章 VXWorks的驅(qū)動模型 第6章 Linux的驅(qū)動模型 第7章 WinCE的驅(qū)動模型第三篇 BSP/OAL篇 第8章 BSP的基本概念 第9章 BSP的設(shè)計要素 第10章 Linux的啟動過程 第11章 WinCE的設(shè)計第四篇 擴展篇 第12章 理解程序的內(nèi)部結(jié)構(gòu) 第13章 嵌入式系統(tǒng)的設(shè)計思想結(jié)束語參考文獻
章節(jié)摘錄
插圖:第一篇 基礎(chǔ)方法篇本篇就筆者的理解來討論一些嵌入式軟件設(shè)計所必備的基礎(chǔ)技能。如果讀者急于了解嵌入式系統(tǒng)軟件設(shè)計的方法,可以直接跳到第二篇“驅(qū)動模型篇”。借用一些老套的話——“萬丈高樓從地起”“磨刀不誤砍柴功”,打好扎實的基礎(chǔ)是非常重要的。在我看來,對嵌入式軟件系統(tǒng)的基本要求是高效和穩(wěn)定,它要求軟件開發(fā)人員設(shè)計出的程序邏輯嚴(yán)密,層次清楚,效率優(yōu)化,品質(zhì)高精;與此同時,軟件需要與硬件系統(tǒng)打交道,需要處理復(fù)雜的應(yīng)用問題,涉及到的專業(yè)面廣泛且深入,由此軟件開發(fā)人員還需要掌握很多復(fù)雜的專業(yè)知識。所以,基礎(chǔ)與方法對于嵌入式軟件的設(shè)計至關(guān)重要。本書雖然不求將各種專業(yè)知識與技能講解得全面透徹,但希望筆者多年積累的一些點滴經(jīng)驗,能夠給讀者帶來開指路的功效。1.心理準(zhǔn)備 如上所述,嵌入式軟件的設(shè)計是一項極其艱辛復(fù)雜的程序設(shè)計工作,它需要有豐富、扎實的專業(yè)知識,還需要有艱苦卓絕、鍥而不舍、敢于拼搏和敢于挑戰(zhàn)的精神。在最開始著手研究嵌入式軟件開發(fā)時,就需要樹立腳踏實地的學(xué)習(xí)和工作作風(fēng),在設(shè)計工作中要實事求是,不能臆想,不能武斷,不能自大。另外,也要去除心目中的畏難情緒和神秘觀念。只要認(rèn)真學(xué)習(xí)、深入鉆研,就可以設(shè)計出性能優(yōu)秀的嵌入式產(chǎn)品;只要思路清晰、方法正確,也可以創(chuàng)造奇跡。嵌入式軟件系統(tǒng)既是軟件設(shè)計,又是藝術(shù)設(shè)計。它要求不但要實現(xiàn)產(chǎn)品的功能,還要設(shè)計出友好、易用、能夠一眼就吸引住用戶眼球的界面。所以嵌入式軟件不但要求內(nèi)部結(jié)構(gòu)精細(xì),還要求外部界面設(shè)計精細(xì),每一個細(xì)微角落都要體現(xiàn)出設(shè)計者的獨具匠心! 誠然,嵌入式軟件設(shè)計也是軟件設(shè)計人員人生的一大樂趣。當(dāng)一個產(chǎn)品從你手中誕生時;當(dāng)一個用戶津津樂道地使用一個PS2玩一個游戲,或者使用一個手持設(shè)備觀看一部驚險電影時;當(dāng)一名工作人員使用辦公室的大屏幕進行遠(yuǎn)程監(jiān)控,或遠(yuǎn)程操作一個復(fù)雜的機器設(shè)備時;如果這些軟件系統(tǒng)都是出自于自己的作品,那么這些豈不是為之振奮的事情?當(dāng)大家有了這些心理準(zhǔn)備,有了這些遠(yuǎn)景的樂趣,就會為自己的學(xué)習(xí)產(chǎn)生巨大潛能和動力。興趣是攻克難關(guān)的先導(dǎo),希望讀者帶著強烈的興趣閱讀完本書!
編輯推薦
《嵌入式軟件設(shè)計之思想與方法》可作為在校學(xué)生學(xué)習(xí)嵌入式軟件設(shè)計原理的教學(xué)參考用書,也可作為嵌入式軟件開發(fā)工程人員深入掌握系統(tǒng)軟件設(shè)計的指南,以及嵌入式軟件培訓(xùn)的參考教材。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載