出版時間:2010-3 出版社:電子工業(yè)出版社 作者:何永琪 編 頁數(shù):744
Tag標(biāo)簽:無
前言
嵌入式軟件開發(fā)是嵌入式產(chǎn)品開發(fā)的關(guān)鍵技術(shù)之一,特別是基于 Linux 操作系統(tǒng)的嵌入式軟件開發(fā),已經(jīng)成為嵌入式開發(fā)的主要領(lǐng)域,它不但涉及 Linux 操作系統(tǒng)內(nèi)核的移植、剪裁和優(yōu)化,還包含大量外設(shè)接口、總線等的驅(qū)動程序開發(fā)、移植和優(yōu)化,以及大量的面向具體應(yīng)用需求和產(chǎn)品要求的圖形化應(yīng)用軟件開發(fā)。本書是一本面向產(chǎn)品開發(fā)基本職業(yè)技能的嵌入式 Linux 軟件開發(fā)入門書籍,適合于下列讀者群:嵌入式行業(yè)新入職的軟硬件開發(fā)人員。原來從事單片機(jī)系統(tǒng)開發(fā),有意轉(zhuǎn)向 SoC(片上系統(tǒng))開發(fā)的技術(shù)人員。高等院校和各類職業(yè)教育院校信息技術(shù)相關(guān)專業(yè)高年級學(xué)生和研究生一年級學(xué)生。嵌入式技術(shù)愛好者。本書也可為嵌入式行業(yè)在職技術(shù)人員、高等院校和各類職業(yè)教育院校信息技術(shù)相關(guān)專業(yè)教師及實(shí)驗(yàn)輔導(dǎo)人員提供一定的技術(shù)參考。本書結(jié)構(gòu)本書的結(jié)構(gòu)安排反映了作者多年從事嵌入式軟件開發(fā)的豐富經(jīng)驗(yàn)和對嵌入式產(chǎn)品開發(fā)基本職業(yè)技能要求的深入理解,也參考了本書評審專家和友好讀者的意見,同時考慮到了大多數(shù)讀者的現(xiàn)實(shí)技術(shù)基礎(chǔ);當(dāng)然,許多網(wǎng)絡(luò)書店上大量讀者對已出版的相關(guān)書籍所做的書評也給了作者非常有益的啟示。本書整體結(jié)構(gòu)實(shí)際上遵循了嵌入式產(chǎn)品軟件開發(fā)的基本工作流程,從 Linux 操作系統(tǒng)下的基本編程和面向軟件開發(fā)的 ARM 體系硬件平臺關(guān)鍵特性及其編程應(yīng)用,到 Linux 操作系統(tǒng)的內(nèi)核編程及系統(tǒng)調(diào)用、內(nèi)核移植與剪裁、驅(qū)動程序開發(fā)和移植,直至 Linux 環(huán)境下的圖形化應(yīng)用軟件開發(fā),涵蓋了嵌入式產(chǎn)品軟件開發(fā)工作的各種主要技術(shù),并且最后通過一個實(shí)際項(xiàng)目開發(fā)綜合再現(xiàn)了全書的核心內(nèi)容??傮w內(nèi)容本書分為 6 個部分。第 1 部分 嵌入式開發(fā)基礎(chǔ)第 1 章從產(chǎn)品、服務(wù)和應(yīng)用的角度,概括地介紹嵌入式技術(shù)的主要市場應(yīng)用、嵌入式產(chǎn)品開發(fā)中涉及到的關(guān)鍵技術(shù),讓讀者基本了解掌握嵌入式軟件開發(fā)技術(shù)后能夠從事哪些產(chǎn)品的開發(fā)、能夠在哪些行業(yè)尋找適合的工作崗位。第 2 章從嵌入式系統(tǒng)軟件產(chǎn)品開發(fā)的角度,重點(diǎn)闡述 C 語言編程的核心要領(lǐng),特別是在 Linux 和嵌入式 Linux 環(huán)境下 C 語言編程的關(guān)鍵技術(shù)。第 3 章引導(dǎo)讀者利用開源軟件,搭建嵌入式 Linux 軟件開發(fā)的基本工作環(huán)境,主要是幫助讀者在目前最流行的 Linux 發(fā)行版本——Debian 5.0 上順利搭建一套實(shí)用性軟件開發(fā)環(huán)境。第 2 部分 ARM 架構(gòu)與編程這一部分包括第 4 章到第 7 章,主要是與硬件平臺和 ARM CPU 基礎(chǔ)指令有關(guān)的內(nèi)容。第 4 章主要從軟件開發(fā)編程的角度,詳細(xì)介紹 ARM9 體系的核心架構(gòu)、ARM 常用指令及其編程應(yīng)用和 ARM 匯編語言程序開發(fā)方法。第 5 章主要是引導(dǎo)讀者順利完成一套嵌入式系統(tǒng)的固件(Firmware)開發(fā)環(huán)境的搭建和使用。第 6 章首先介紹目前市場上比較常見的三星 S3C2410A 嵌入式處理器的基本體系結(jié)構(gòu)、工作原理,然后詳細(xì)分析 S3C2410A 處理器主要接口和外設(shè)控制器的工作原理以及使用方式。第 7 章以目前嵌入式 Linux 系統(tǒng)中最常見的系統(tǒng)引導(dǎo)(bootloader)軟件 U-boot 為例,幫助讀者理解 bootloader 的工作機(jī)制、開發(fā)移植流程和系統(tǒng)應(yīng)用。第 3 部分 Linux 系統(tǒng)編程這一部分包括第 8 章到第 12 章,是 Linux 軟件開發(fā)的基礎(chǔ)。第 8 章是 Linux 系統(tǒng)編程的基礎(chǔ),重點(diǎn)討論 Linux 系統(tǒng)中程序的層次結(jié)構(gòu)和內(nèi)存映像、Linux 庫函數(shù)的錯誤處理以及環(huán)境變量等。第 9 章主要討論 Linux 的文件系統(tǒng)及其編程應(yīng)用,由于 Linux 系統(tǒng)中很多設(shè)備的操作是以文件系統(tǒng)的方式處理的,因此文件系統(tǒng)在 Linux 中十分重要。第 10 章詳細(xì)介紹操作系統(tǒng)的一個核心概念——進(jìn)程,還涉及到進(jìn)程的同步和進(jìn)程間通信等基本編程應(yīng)用。第 11 章講解socket編程這一 Linux 網(wǎng)絡(luò)通信應(yīng)用的基礎(chǔ)。第 12 章主要講解多線程程序的編程開發(fā)。第 4 部分 內(nèi)核與驅(qū)動編程這一部分包括第 13 章到第 16 章。第 13 章介紹實(shí)模式與保護(hù)模式、用戶態(tài)與內(nèi)核態(tài)等基本概念,同時還介紹了內(nèi)核編程的一些特點(diǎn),以一個簡單的字符設(shè)備為例說明了驅(qū)動編程的一般方法。第 14 章主要討論 Linux 編程的內(nèi)核接口及其應(yīng)用。第 15 章介紹 Linux 2.6 版本的設(shè)備模型和編程應(yīng)用要點(diǎn)。第 16 章以輸入設(shè)備驅(qū)動和 USB 設(shè)備驅(qū)動為例介紹 Linux 設(shè)備驅(qū)動程序開發(fā)的基本原理和方法。由于很多讀者沒有編程經(jīng)驗(yàn),或者以前主要從事應(yīng)用編程,而從應(yīng)用編程到內(nèi)核和驅(qū)動編程無論是概念還是方法都需要一定的轉(zhuǎn)變,這一部分的目的就是引導(dǎo)讀者完成這一轉(zhuǎn)變。第 5 部分 嵌入式 Linux 系統(tǒng)構(gòu)建這一部分內(nèi)容相對簡單,作者認(rèn)為絕大多數(shù)讀者不會從事 Linux 內(nèi)核的開發(fā),而是有目的地使用或者剪裁穩(wěn)定版本的 Linux 內(nèi)核,因此在第 17 章中主要介紹 Linux 內(nèi)核的配置原理與方法,并舉例說明其中關(guān)鍵操作的基本流程,在第 18 章中則主要講解并演示 Linux 根文件系統(tǒng)構(gòu)建和移植的方法。通過這兩章,讀者基本可以掌握嵌入式 Linux 系統(tǒng)內(nèi)核的配置方法,進(jìn)行簡單的內(nèi)核移植,以及按應(yīng)用要求構(gòu)造根文件系統(tǒng)。第 6 部分 應(yīng)用編程這一部分包括第 19 章到第 22 章,主要目的是幫助讀者熟悉針對諸如智能手機(jī)、自助終端等終端設(shè)備類功能需求的應(yīng)用開發(fā)。第 19 章從開發(fā)編程的角度介紹 C++ 特有的概念和用法,適合那些對 C 語言有一定基礎(chǔ)的讀者快速進(jìn)入 C++ 編程領(lǐng)域。第 20 章以目前嵌入式行業(yè)最常見的開發(fā)環(huán)境——Qt 4.5.2 的開源版本為例,介紹如何使用 Qt 平臺進(jìn)行嵌入式 GUI 的開發(fā)。第 21 章則簡單介紹最常用的嵌入式數(shù)據(jù)庫 SQLite 的應(yīng)用開發(fā)方法。第 22 章通過一個實(shí)際產(chǎn)品開發(fā)中的典型項(xiàng)目案例,將本書核心內(nèi)容貫穿于一體,使讀者有機(jī)會全方位地了解嵌入式產(chǎn)品的軟件開發(fā)流程和實(shí)施方法。主要特色本書的作者長期從事嵌入式軟件開發(fā)工作,本書既是他們經(jīng)驗(yàn)和教訓(xùn)的匯總,也是他們對嵌入式產(chǎn)品軟件開發(fā)的理解。書中內(nèi)容取舍與結(jié)構(gòu)安排均面向嵌入式軟件開發(fā)的實(shí)際需要;書中的代碼均經(jīng)過編譯和運(yùn)行,進(jìn)行了嚴(yán)格的測試,部分代碼來自實(shí)際產(chǎn)品開發(fā)工作并且經(jīng)過終端產(chǎn)品的長期應(yīng)用考驗(yàn);Linux 內(nèi)核版本選擇的是初稿完成時的最新內(nèi)核穩(wěn)定版本——Linux 2.6.30;應(yīng)用開發(fā)環(huán)境則選擇的是最新的跨操作系統(tǒng)開發(fā)平臺——Qt Embedded 4.5.1,特別是本書支持網(wǎng)站上提供的 Qt Embedded 4.5.1 是本書初稿完成時全球唯一的支持簡體中文處理的版本(這個版本也是本書幾位作者移植成功的)。本書的支持網(wǎng)站是 http://www.cjhytec.com,提供例程源碼的下載。本書作者本書由何永琪教授主編,楊紅濤負(fù)責(zé)編寫第4章到第12章、第17章、第18章、第21章和第22章,焦悅光負(fù)責(zé)編寫第2章、第3章、第13章到第16章、第19章和第20章,戴無懼負(fù)責(zé)編寫前言和第1章并起草全書大綱;鄧瑩瑩為第19章和第20章提供部分章節(jié)初稿,袁裕芳、張欣然和朱子豪為第20章、第21章和第22章提供部分章節(jié)初稿,周聰、林勝朋和王松為第6章和第22章提供部分章節(jié)初稿,吳龍和李英良為第11章、第15章和第16章提供部分章節(jié)初稿,魏大慶和江中舟負(fù)責(zé)全書圖例繪制。焦悅光最后統(tǒng)稿全書。
內(nèi)容概要
本書從實(shí)用的角度出發(fā),以 S3C2410A 芯片及 HY2410A 開發(fā)板為主,介紹了嵌入式 ARM 平臺上 Linux 系統(tǒng)開發(fā)所需的各種技術(shù),包括 ARM 處理器架構(gòu)與匯編語言、嵌入式 Linux 開發(fā)環(huán)境的建立、C 及 C++ 語言要點(diǎn)、bootloader 和 Linux 內(nèi)核的移植、Linux 系統(tǒng)應(yīng)用編程、Linux 內(nèi)核驅(qū)動編程和 Qt 圖形界面應(yīng)用的開發(fā)等,涵蓋了嵌入式產(chǎn)品軟件開發(fā)工作所需的各種主要技術(shù)。 本書是一本面向產(chǎn)品開發(fā)基本職業(yè)技能的嵌入式Linux軟件開發(fā)入門書籍,適合于剛進(jìn)入嵌入式行業(yè)的開發(fā)人員及技術(shù)愛好者閱讀,也可供高等院校和各類職業(yè)教育院校信息技術(shù)相關(guān)專業(yè)人員作為參考資料。
作者簡介
何永琪:1962年8月出生,1996年獲得丹麥技術(shù)大學(xué)(Technical University Of Denmark)博士學(xué)位,現(xiàn)任北京大學(xué)電子學(xué)系教授、博士生導(dǎo)師。長期從事光纖通信、無線通信和寬帶接入領(lǐng)域的研究,已完成國家973計劃、國家863計劃、國家自然科學(xué)基金等項(xiàng)目十余項(xiàng),發(fā)表學(xué)術(shù)論文二十余篇。
書籍目錄
第1部分 嵌入式開發(fā)基礎(chǔ) 第1章 引言 1.1 嵌入式產(chǎn)業(yè)概況 1.2 Linux操作系統(tǒng) 1.3 ARM體系概況 1.3.1 ARM7 1.3.2 ARM9 1.3.3 ARM9E 1.3.4 ARME 1.3.5 ARM 1.3.6 Cortex 1.4 常見嵌入式產(chǎn)品及其基本平臺簡介 1.4.1 學(xué)習(xí)開發(fā)板 1.4.2 行業(yè)終端 1.4.3 工業(yè)控制 1.4.4 手持娛樂 1.4.5 醫(yī)療儀器 1.4.6 汽車電子 1.4.7 智能本 1.5 嵌入式產(chǎn)品開發(fā)基本流程 第2章 C語言編程要點(diǎn) 2.1 數(shù)據(jù)類型 2.2 常數(shù) 2.3 變量 2.3.1 變量的定義與初始化 2.3.2 變量的訪問 2.3.3 左值與右值 2.3.4 只讀變量 2.4 操作符 2.4.1 只讀操作符 2.4.2 讀寫操作符 2.4.3 類型轉(zhuǎn)換操作符 2.4.4 sizeof操作符 2.5 表達(dá)式和語句 2.5.1 表達(dá)式 2.5.2 語句 2.6 復(fù)合類型 2.6.1 數(shù)組 2.6.2 結(jié)構(gòu)體 2.6.3 位域 2.6.4 數(shù)據(jù)的對齊 2.6.5 聯(lián)合體 2.6.6 類型嵌套 2.6.7 類型別名 2.6.8 枚舉類型 2.7 流程控制 2.7.1 順序結(jié)構(gòu) 2.7.2 分支結(jié)構(gòu) 2.7.3 隱含的分支結(jié)構(gòu) 2.7.4 循環(huán)結(jié)構(gòu) 2.7.5 goto 2.8 函數(shù) 2.8.1 聲明與定義 2.8.2 函數(shù)的調(diào)用與傳值方式 2.8.3 函數(shù)與復(fù)合類型 2.8.4 內(nèi)聯(lián)函數(shù) 2.8.5 變量的作用范圍與生存期 2.9 指針 2.9.1 指針與變量 2.9.2 指針與操作符 2.9.3 指針與數(shù)組 2.9.4 字符串 2.9.5 指針與結(jié)構(gòu)體 2.9.6 指針與函數(shù) 2.9.7 回調(diào)函數(shù) 2.9.8 函數(shù)指針類型轉(zhuǎn)換 2.10 預(yù)處理語句 2.10.1 文件包含 2.10.2 宏定義 2.10.3 宏與函數(shù) 2.10.4 代碼分支 第3章 開發(fā)環(huán)境 3.1 Linux使用基礎(chǔ) 3.1.1 命令參數(shù)與選項(xiàng) 3.1.2 文件、目錄和路徑 3.1.3 用戶與權(quán)限 3.1.4 硬鏈接與符號鏈接 3.1.5 命令使用技巧 3.2 Linux常用命令 ……第2部分 ARM架構(gòu)與編程第3部分 Linux系統(tǒng)編程第4部分 內(nèi)核與驅(qū)動編程第5部分 嵌入式Linux系統(tǒng)構(gòu)建第6部分 應(yīng)用編程附錄A 縮略語
媒體關(guān)注與評論
本書在嵌入式系統(tǒng)技術(shù)知識與實(shí)際產(chǎn)品開發(fā)技能之間的“鴻溝”上構(gòu)建了很好的橋梁,相信嵌入式系統(tǒng)技術(shù)初學(xué)者和大、專院校電子信息類學(xué)生以及嵌入式系統(tǒng)產(chǎn)品開發(fā)人員,將能夠通過本書更加容易、透徹地了解和理解嵌入式系統(tǒng)基本技術(shù),并借以提高實(shí)際產(chǎn)品開發(fā)技能,快速有效地走進(jìn)嵌入式系統(tǒng)產(chǎn)品開發(fā)領(lǐng)域。 ——大唐電信科技產(chǎn)業(yè)集團(tuán)總工程師 陳山枝 本書彌補(bǔ)了學(xué)院式教學(xué)的缺陷,可使讀者順利實(shí)現(xiàn)從掌握知識到掌握開發(fā)技能的轉(zhuǎn)變,深刻理解嵌入式產(chǎn)品開發(fā)的真諦。 ——北京大學(xué)教授、博士生導(dǎo)師 何永琪 這是一本不可多得的嵌入式系統(tǒng)開發(fā)人員必備參考書。全書強(qiáng)調(diào)實(shí)用性,而不是知識的完備性,可使讀者快速掌握實(shí)際開發(fā)工作中需要的技術(shù),并引導(dǎo)讀者養(yǎng)成良好的開發(fā)習(xí)慣,使其最初就踏上一條通往成功的正確之路。 ——北京誠捷鴻遠(yuǎn)通信技術(shù)有限公司副總經(jīng)理 江中舟
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
嵌入式Linux系統(tǒng)實(shí)用開發(fā) PDF格式下載