官术网_书友最值得收藏!

前言

嵌入式軟件開發是嵌入式產品開發的關鍵技術之一,特別是基于Linux操作系統的嵌入式軟件開發,已經成為嵌入式開發的主要領域,它不但涉及Linux操作系統內核的移植、剪裁和優化,還包含大量外設接口、總線等的驅動程序開發、移植和優化,以及大量的面向具體應用需求和產品要求的圖形化應用軟件開發。

本書是一本面向產品開發基本職業技能的嵌入式Linux軟件開發入門書籍,適合于下列讀者群:

◆ 嵌入式行業新入職的軟硬件開發人員。

◆ 原來從事單片機系統開發,有意轉向SoC(片上系統)開發的技術人員。

◆ 高等院校和各類職業教育院校信息技術相關專業高年級學生和研究生一年級學生。

◆ 嵌入式技術愛好者。

本書也可為嵌入式行業在職技術人員、高等院校和各類職業教育院校信息技術相關專業教師及實驗輔導人員提供一定的技術參考。

本書的結構安排反映了作者多年從事嵌入式軟件開發的豐富經驗和對嵌入式產品開發基本職業技能要求的深入理解,也參考了本書評審專家和友好讀者的意見,同時考慮到了大多數讀者的現實技術基礎;當然,許多網絡書店上大量讀者對已出版的相關書籍所做的書評也給了作者非常有益的啟示。本書整體結構實際上遵循了嵌入式產品軟件開發的基本工作流程,從Linux操作系統下的基本編程和面向軟件開發的ARM體系硬件平臺關鍵特性及其編程應用,到Linux操作系統的內核編程及系統調用、內核移植與剪裁、驅動程序開發和移植,直至Linux環境下的圖形化應用軟件開發,涵蓋了嵌入式產品軟件開發工作的各種主要技術,并且最后通過一個實際項目開發綜合再現了全書的核心內容。

本書分為6 個部分。

第1 章從產品、服務和應用的角度,概括地介紹嵌入式技術的主要市場應用、嵌入式產品開發中涉及到的關鍵技術,讓讀者基本了解掌握嵌入式軟件開發技術后能夠從事哪些產品的開發、能夠在哪些行業尋找適合的工作崗位。第2 章從嵌入式系統軟件產品開發的角度,重點闡述C語言編程的核心要領,特別是在Linux和嵌入式Linux環境下C語言編程的關鍵技術。第3 章引導讀者利用開源軟件,搭建嵌入式Linux軟件開發的基本工作環境,主要是幫助讀者在目前最流行的Linux發行版本——Debian 5.0 上順利搭建一套實用性軟件開發環境。

這一部分包括第4 章到第7 章,主要是與硬件平臺和ARM CPU基礎指令有關的內容。第4 章主要從軟件開發編程的角度,詳細介紹ARM9 體系的核心架構、ARM常用指令及其編程應用和ARM匯編語言程序開發方法。第5 章主要是引導讀者順利完成一套嵌入式系統的固件(Firmware)開發環境的搭建和使用。第6 章首先介紹目前市場上比較常見的三星S3C2410A嵌入式處理器的基本體系結構、工作原理,然后詳細分析S3C2410A處理器主要接口和外設控制器的工作原理以及使用方式。第7 章以目前嵌入式Linux系統中最常見的系統引導(bootloader)軟件U-boot為例,幫助讀者理解bootloader的工作機制、開發移植流程和系統應用。

這一部分包括第8 章到第12 章,是Linux軟件開發的基礎。第8 章是Linux系統編程的基礎,重點討論Linux系統中程序的層次結構和內存映像、Linux庫函數的錯誤處理以及環境變量等。第9 章主要討論Linux的文件系統及其編程應用,由于Linux系統中很多設備的操作是以文件系統的方式處理的,因此文件系統在Linux中十分重要。第10 章詳細介紹操作系統的一個核心概念——進程,還涉及到進程的同步和進程間通信等基本編程應用。第11 章講解socket編程這一Linux網絡通信應用的基礎。第12 章主要講解多線程程序的編程開發。

這一部分包括第13 章到第16 章。第13 章介紹實模式與保護模式、用戶態與內核態等基本概念,同時還介紹了內核編程的一些特點,以一個簡單的字符設備為例說明了驅動編程的一般方法。第14 章主要討論Linux編程的內核接口及其應用。第15 章介紹Linux 2.6 版本的設備模型和編程應用要點。第16 章以輸入設備驅動和USB設備驅動為例介紹Linux設備驅動程序開發的基本原理和方法。由于很多讀者沒有編程經驗,或者以前主要從事應用編程,而從應用編程到內核和驅動編程無論是概念還是方法都需要一定的轉變,這一部分的目的就是引導讀者完成這一轉變。

這一部分內容相對簡單,作者認為絕大多數讀者不會從事Linux內核的開發,而是有目的地使用或者剪裁穩定版本的Linux內核,因此在第17 章中主要介紹Linux內核的配置原理與方法,并舉例說明其中關鍵操作的基本流程,在第18 章中則主要講解并演示Linux根文件系統構建和移植的方法。通過這兩章,讀者基本可以掌握嵌入式Linux系統內核的配置方法,進行簡單的內核移植,以及按應用要求構造根文件系統。

這一部分包括第19 章到第22 章,主要目的是幫助讀者熟悉針對諸如智能手機、自助終端等終端設備類功能需求的應用開發。第19 章從開發編程的角度介紹C++ 特有的概念和用法,適合那些對C語言有一定基礎的讀者快速進入C++ 編程領域。第20 章以目前嵌入式行業最常見的開發環境——Qt 4.5.2 的開源版本為例,介紹如何使用Qt平臺進行嵌入式GUI的開發。第21 章則簡單介紹最常用的嵌入式數據庫SQLite的應用開發方法。第22 章通過一個實際產品開發中的典型項目案例,將本書核心內容貫穿于一體,使讀者有機會全方位地了解嵌入式產品的軟件開發流程和實施方法。

本書的作者長期從事嵌入式軟件開發工作,本書既是他們經驗和教訓的匯總,也是他們對嵌入式產品軟件開發的理解。書中內容取舍與結構安排均面向嵌入式軟件開發的實際需要;書中的代碼均經過編譯和運行,進行了嚴格的測試,部分代碼來自實際產品開發工作并且經過終端產品的長期應用考驗;Linux內核版本選擇的是初稿完成時的最新內核穩定版本——Linux 2.6.30;應用開發環境則選擇的是最新的跨操作系統開發平臺——Qt Embedded 4.5.1,特別是本書支持網站上提供的Qt Embedded 4.5.1是本書初稿完成時全球唯一的支持簡體中文處理的版本(這個版本也是本書幾位作者移植成功的)。

本書的支持網站是http://www.cjhytec.com,提供例程源碼的下載。

本書由何永琪教授主編,楊紅濤負責編寫第4章到第12章、第17章、第18章、第21章和第22章,焦悅光負責編寫第2章、第3章、第13章到第16章、第19章和第20章,戴無懼負責編寫前言和第1章并起草全書大綱。鄧瑩瑩為第19章和第20章提供部分章節初稿,袁裕芳、張欣然和朱子豪為第20章、第21章和第22章提供部分章節初稿,周聰、林勝朋和王松為第6章和第22章提供部分章節初稿,吳龍和李英良為第11章、第15章和第16章提供部分章節初稿,魏大慶和江中舟負責全書圖例繪制。焦悅光最后統稿全書。

主站蜘蛛池模板: 岑溪市| 荥经县| 淄博市| 溧阳市| 漳州市| 栾川县| 广河县| 印江| 阿城市| 桐乡市| 石城县| 鲁山县| 吴旗县| 南丰县| 武义县| 邛崃市| 台南县| 安义县| 临武县| 塘沽区| 武平县| 绍兴县| 集安市| 开阳县| 黄石市| 山阴县| 沅江市| 潞城市| 自治县| 垣曲县| 元阳县| 尉犁县| 阿城市| 抚松县| 晋中市| 井研县| 马关县| 永清县| 东城区| 洛浦县| 日照市|