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