TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
嵌入式 Linux 系統開發入門(簡體書)
滿額折

嵌入式 Linux 系統開發入門(簡體書)

人民幣定價:48 元
定  價:NT$ 288 元
優惠價:87251
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:7 點
相關商品
商品簡介
作者簡介
目次

商品簡介

本書基於嵌入式Linux系統,介紹其軟件開發方法,重點介紹多任務、網絡和設備驅動的編程。本書分為兩個部分。第1部分是基礎篇(第1~8章),內容包括Linux系統的基本使用方法、Linux系統的主要開發工具、文件讀寫、多任務機制、網絡套接字編程、模塊與設備驅動、嵌入式Linux系統開發、GUI程序設計初步。第2部分是實驗篇(第9~21章),內容包括實驗系統介紹、嵌入式系統開發實驗、引導加載器、內核配置和編譯、根文件系統的構建、圖形用戶接口、音頻接口程序設計、嵌入式系統中的I/O接口驅動、觸摸屏移植、Qt/Embedded移植、MPlayer移植、GTK+移植、實時操作系統RTEMS。本書可作為電子信息、通信、自動化等專業相關課程的教材,也可供相關領域的工程技術人員學習、參考。

作者簡介

方元,博士,南京大學電子科學與工程學院副教授,長期講授微機原理、嵌入式系統、DSP原理與應用等課程,獲得2013年石林獎教金。

嵌入式系統幾乎是伴隨著微處理器同時發展的。根據“維基百科”介紹,誕生於20世紀60年代的阿波羅制導計算機被認為是最早的嵌入式系統之一。自進入21世紀以來,“嵌入式”在計算機領域已成為持續熱門的話題。與通用計算機類似,嵌入式系統由軟件和硬件組成。隨著嵌入式處理器性能的不斷提高,許多應用系統的實時性已經不成問題,越來越多的嵌入式系統開始直接使用通用計算機系統的軟件。
例如,英國的樹莓派基金會採用博通SoC處理器,開發出一系列的樹莓派產品。Pi Zero是主頻為700MHz的MHz ARM1176jzf-s核,價格定位在5美元;而在2017年年初發佈的Pi 3 B+版本,更是具有4核64位CORTEX-A53(ARMv8指令集)的處理器,主頻高達1.2GHz,與普通的筆記本電腦的性能相差無幾,價格也不過三十幾美元。它們都具有高性能的VC-4的圖像處理單元(Graphics Processing Unit,GPU),可以流暢地運行一些圖形桌面系統,播放高清視頻。
在這樣的背景下,採用通用計算機系統軟件開發嵌入式系統,不僅大大縮短了開發週期、提高了開發效率,系統的可靠性也得到了提升。
在眾多的軟件中,以Linux為核心的操作系統以及大量的開源軟件成為許多嵌入式系統的首選。Linux世界提供大量的自由軟件,為開發人員提供了廣泛的選擇空間,同時也能得到許多無私的幫助。
本書基於嵌入式Linux系統,介紹其軟件開發方法,重點介紹多任務、網絡和設備驅動的編程。
本書分為基礎篇和實驗篇兩個部分。
第1部分 基礎篇
第1章介紹Linux系統的基本使用方法,重點介紹與嵌入式系統開發相關的命令。
第2章介紹Linux系統的主要開發工具,包括編譯工具、GNU Make和版本控制系統的使用。
本章最後一節介紹了交叉編譯工具的製作過程,供有興趣的讀者參考。
第3章介紹文件讀寫,重點介紹面向文件描述符的基本系統功能調用,它們是下面幾章的基礎。
第4章介紹多任務機制,重點介紹在Linux系統中實現多任務的兩種主要形式(進程和多線程),以及在多任務程序設計中的一些基礎問題。
第5章介紹網絡套接字編程,重點介紹以套接字為基礎的網絡通信程序的基本編程方法。
第6章介紹模塊與設備驅動,以個人計算機系統上的一個簡單設備為模型,比較系統地介紹了Linux系統中字符設備驅動程序的開發方法。雖然研究對象是通用計算機系統中的一個設備,但其研究方法同樣適用於嵌入式Linux中的設備。
第7章介紹嵌入式Linux系統的軟件結構,概括地討論了嵌入式系統的BootLoader、內核佈局、文件系統和圖形接口幾個方面的問題。
第8章簡要介紹基於GTK+庫的圖形接口應用編程基礎,通過介紹一些常用組件的功能和界面設計方法,幫助讀者瞭解Linux系統中圖形界面的編程風格。在移植了圖形庫的嵌入式Linux系統中,可以比較方便地開發圖形化應用程序。
第2部分 實驗篇
實驗篇以美國德州儀器公司的卡片式計算機Beagle Bone為實驗對象,在此基礎上進行嵌入式Linux開發,按照從底層基本系統建立到上層應用軟件的移植和編寫的順序加以組織。
第9章是實驗系統基本介紹。
第10章介紹嵌入式系統開發實驗環境搭建。
第11章介紹BootLoader的編譯和啟動設備的製作。
第12章、第13章分別完成Linux內核的編譯和根文件系統的製作。至此,一個完全由源碼打造的基本Linux系統已經建立,它是後續實驗的基礎。
第14章、第15章學習嵌入式Linux環境下的程序開發方法,其中包括圖形界面程序設計和音頻接口程序設計。在實驗過程中應建立軟件層次的概念。
第16章學習Linux系統中簡單設備驅動程序的編寫。
第17~20章安排了一些軟件移植實驗,從簡單的觸摸屏庫到較為複雜的GTK+圖形庫。通過以上逐層遞進的實驗,可以掌握在嵌入式平臺上實現一種應用系統的方法。
鑒於實時操作系統在嵌入式應用中的地位,第21章介紹一款實時操作系統RTEMS在嵌入式平臺上移植的過程。
實驗篇的前3章為建立嵌入式Linux實驗環境做初步準備。後續內容均可在此基礎上以具體的應用形式實現,例如多進程的數據采集與回放、多線程的圖形應用等。
本書假定讀者系統地學習過C語言,並對Linux操作系統有初步的認識。針對當前嵌入式系統的應用特點,本書重點選取了多任務程序設計、網絡通信、設備驅動等幾個開發方面進行介紹。書中沒有使用過多的C語言編程技巧,而著重於功能的實現。本書強調各種工具的使用。一些工具並不僅限於軟件開發,在其他場合也能起到極大的幫助作用。例如版本控制系統,在撰寫文稿、項目協作等工作中都是非常方便的工具。希望這些工具的介紹能對讀者有所幫助。
本書內容作為“嵌入式系統及實驗”課程的教材,已在南京大學電子信息類本科教學中實踐多年。就筆者的經驗來說,基礎部分和實驗部分每週各用3個課時是一個可行的方案。本書為任課教師免費提供配套電子課件、習題參考答案、程序代碼等教學資源,請登錄華信教育資源網(http://www.hxedu.com.cn)註冊下載,也可聯繫編輯(wangxq@phei.com.cn,010-88254113)索取。
限於筆者的知識水平和認知能力,書中肯定存在不少錯誤及不當之處,懇請同行專家及讀者批評指正。

編 著 者

目次

第1部分 基 礎 篇
第1章 Linux系統的基本使用方法
1.1 Linux系統的使用環境
1.1.1 Linux系統的目錄結構
1.1.2 Linux系統的用戶
1.2 命令行工作方式
1.2.1 終端
1.2.2 目錄操作
1.2.3 文件操作
1.2.4 瀏覽文件
1.2.5 打包、壓縮和解壓
1.2.6 進程控制
1.2.7 管道與重定向
1.2.8 shell腳本程序
1.3 規則表達式
1.4 與開發相關的常用命令
1.4.1 文件比較
1.4.2 文本搜索
1.4.3 流編輯
1.5 文本編輯工具
1.5.1 vim工作模式
1.5.2 vim常用編輯命令
1.5.3 vim高級操作
本章練習
本章參考資源
第2章 Linux系統的主要開發工具
2.1 gcc工具鏈
2.1.1 gcc編譯器
2.1.2 彙編器和鏈接器
2.2 代碼分析與轉換工具
2.2.1 函數地址解析addr2line
2.2.2 符號列表nm
2.2.3 目標文件轉儲objdump
2.2.4 代碼剖析gprof
2.2.5 ELF符號解析readelf
2.2.6 代碼瘦身strip
2.3 GNU Make
2.3.1 源代碼的組織
2.3.2 第一個Makefile
2.3.3 GNU Make基本規則
2.3.4 完善Makefile
2.3.5 GNU Make的依賴
2.4 開源軟件的移植
2.4.1 工具準備
2.4.2 源代碼的組織結構
2.4.3 配置編譯環境
2.4.4 編譯和安裝
2.5 調試工具
2.5.1 gdb使用示例
2.5.2 遠程調試
2.6 版本控制系統
2.6.1 集中式版本控制系統svn
2.6.2 追溯歷史、分支與合併
2.6.3 分布式版本控制系統git
2.6.4 git基本操作
2.6.5 git分支與合併
2.7 合理地組織程序
2.7.1 頭文件的要求
2.7.2 C語言源文件
2.7.3 庫的產生和作用
2.7.4 項目的目錄組織結構
2.8 交叉編譯工具鏈的製作
本章練習
本章參考資源
第3章 文件讀寫
3.1 文件系統的概念
3.2 文件與目錄
3.2.1 Linux系統中的虛擬文件系統
3.2.2 Linux系統的文件類型
3.2.3 改變文件屬性
3.3 文件描述符
3.3.1 標準I/O設備
3.3.2 有關文件操作的系統功能調用
3.3.3 文件描述符複製
3.3.4 文件描述符操作
3.3.5 文件共享與讀寫衝突
3.4 標準I/O庫的文件操作
3.4.1 打開文件
3.4.2 文件流讀寫
3.4.3 文件流定位
3.4.4 格式化I/O文件操作函數
本章練習
本章參考資源
第4章 多任務機制
4.1 理解進程的概念
4.1.1 什麼是進程
4.1.2 進程的狀態
4.1.3 進程的創建和結束
4.1.4 創建進程的例子
4.2 進程間的數據交換
4.2.1 管道
4.2.2 共享內存
4.2.3 消息隊列
4.3 守護進程
4.4 線程――輕量級進程
4.5 線程的競爭與同步
4.5.1 互斥鎖
4.5.2 信號和信號量
4.5.3 進程與線程的對比
本章練習
本章參考資源
第5章 網絡套接字編程
5.1 套接字API
5.1.1 兩種類型的套接口
5.1.2 網絡協議分層
5.1.3 關閉套接口
5.2 TCP網絡程序分析
5.2.1 網絡地址
5.2.2 端口
5.3 TCP服務器程序設計
5.4 簡單的數據流對話
5.5 多任務數據流對話
5.6 基於數據報的對話程序
本章練習
本章參考資源
第6章 模塊與設備驅動
6.1 設備驅動程序簡介
6.1.1 內核功能劃分
6.1.2 設備驅動程序的作用
6.1.3 設備和模塊分類
6.2 構建和運行模塊
6.2.1 第一個示例模塊
6.2.2 模塊的編譯
6.2.3 模塊的運行
6.2.4 內核模塊與應用程序
6.3 模塊的結構
6.3.1 模塊的初始化和清除函數
6.3.2 內核符號表
6.3.3 模塊的卸載
6.3.4 資源使用
6.4 字符設備驅動程序
6.4.1 timer的設計
6.4.2 文件操作
6.4.3 打開設備
6.4.4 I/O控制
6.4.5 阻塞型I/O
6.5 設備驅動程序的使用
6.5.1 驅動程序與應用程序
6.5.2 內核源碼中的模塊結構
6.5.3 將模塊加入內核
6.6 調試技術
6.6.1 輸出調試
6.6.2 查詢調試
6.6.3 監視調試
6.6.4 故障調試
6.6.5 使用gdb調試工具
6.6.6 使用內核調試工具
6.7 硬件管理與中斷處理
6.7.1 I/O寄存器和常規內存
6.7.2 中斷
6.8 內核的定時
6.8.1 時間間隔
6.8.2 獲取當前時間
6.8.3 延遲執行
6.8.4 定時器
本章練習
本章參考資源
第7章 嵌入式Linux系統開發
7.1 引導裝載程序
7.2 內核設置
7.2.1 內核佈局
7.2.2 內核鏈接和裝入
7.2.3 參數傳遞和內核引導
7.3 設備驅動程序
7.3.1 幀緩沖區驅動程序
7.3.2 輸入設備驅動程序
7.3.3 MTD驅動程序
7.3.4 MTD驅動程序設置
7.4 嵌入式設備的文件系統
7.4.1 擴展文件系統
7.4.2 日誌閃存文件系統的第2版(JFFS2)
7.4.3 tmpfs
7.5 圖形用戶界面(GUI)
7.5.1 XFree86 4.X(帶幀緩沖區支持的X11R6)
7.5.2 Microwindows
7.5.3 Microwindows上的FLTKAPI
7.5.4 Qt/Embedded
7.6 幀緩衝
第8章 GUI程序設計初步
8.1 基本組件介紹
8.1.1 一個簡單的圖形接口程序
8.1.2 按鈕類組件
8.1.3 數據類組件
8.1.4 菜單欄與工具欄
8.2 畫圖區
8.3 界面佈局方法
8.3.1 盒子
8.3.2 表格
8.3.3 對位
8.3.4 便簽
第2部分 實 驗 篇
第9章 實驗系統介紹
9.1 實驗系統性能概括
9.2 軟件
9.2.1 交叉編譯工具鏈
9.2.2 工具鏈安裝
9.2.3 嵌入式操作系統軟件
9.3 實驗系統搭建
第10章 嵌入式系統開發實驗
10.1 實驗目的
10.2 嵌入式系統開發過程
10.2.1 串口設置(使用minicom)
10.2.2 TFTP(簡單文件傳輸協議)
10.2.3 NFS服務器架設
10.2.4 編譯應用程序
10.3 實驗報告要求
第11章 引導加載器
11.1 實驗目的
11.2 BootLoader
11.2.1 BootLoader的作用
11.2.2 BootLoader程序結構框架
11

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 251
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區