嵌入式 Linux 系統開發入門

嵌入式 Linux 系統開發入門

作者: 方元
出版社: 電子工業
出版在: 2018-05-01
ISBN-13: 9787121335341
ISBN-10: 7121335344
裝訂格式: 平裝
總頁數: 260 頁





內容描述


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


目錄大綱


第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.3實驗內容
11.3.1獲取U-Boot 
11.3.2配置BootLoader選項
11.3.3製作TF卡
11.4實驗報告要求
第12章內核配置和編譯
12.1實驗目的
12.2相關知識
12.2.1內核源代碼目錄結構
12.2.2內核配置的基本結構
12.2 .3編譯規則Makefile 
12.3編譯內核
12.3.1 Makefile的選項參數
12.3.2內核配置項介紹
12.4實驗內容
12.5實驗報告要求
第13章根文件系統的構建
13.1實驗目的
13.2 Linux文件系統的類型
13.2.1 EXT文件系統
13.2.2 NFS文件系統
13.2.3 JFFS2文件系統
13.2.4 YAFFS2 
13.2.5 RAM Disk 
13.3文件系統的製作
13.3.1 BusyBox介紹
13.3.2 BusyBox的編譯
13.3.3配置文件系統
13.3.4製作ramdisk文件鏡像
13.3.5製作init_ramfs 
13.4實驗內容
13.5實驗報告要求
第14章圖形用戶接口
14.1實驗目的
14.2原理概述
14.2.1幀緩衝設備
14.2.2幀緩衝與色彩
14.2.3 LCD控制器
14.2.4幀緩衝設備操作
14.3實驗內容
14.3.1實現基本畫圖功能
14.3.2合理的軟件結構
14.4實驗報告要求
第15章音頻接口程序設計
15.1實驗目的
15.2接口介紹
15.3應用軟件設計
15.3.1 OSS 
15.3.2 ALSA 
15.4實驗內容
15.5實驗報告要求
第16章嵌入式系統中的I/O接口驅動
16.1實驗目的
16.2接口電路介紹
16.3 I/O端口地址映射
16.4 LED控制
16.5實驗內容
16.6實驗報告要求
第17章觸摸屏移植
17.1實驗目的
17.2 Linux系統的觸摸屏支持
17.2.1觸摸屏的基本原理
17.2.2內核配置
17.2.3觸摸屏庫tslib 
17.2.4觸摸屏庫的安裝和測試
17.3實驗內容
17.4實驗報告要求
第18章Qt/Embedded移植
18.1實驗目的
18.2 Qt/Embedded介紹
18.2.1 Qt/Embedded軟件包結構
18.2.2編譯環境設置
18.2.3編譯過程
18.2.4 Qt/Embedded的安裝
18.2.5 Qt-4.8版本編譯
18.3實驗要求
18.4實驗報告要求
第19章MPlayer移植
19.1實驗目的
19.2軟件介紹
19.3編譯準備
19.4編譯
19.5擴展功能
19.6實驗報告要求
第20章GTK+移植
20.1實驗目的
20.2 GTK+的背景
20.3 GTK+庫的依賴關係
20.4編譯過程
20.4.1編譯準備
20.4 .2一般方法
20.4.3環境變量
20.4.4一些特殊的設置
20.4.5編譯技巧
20.5測試
20.6實驗要求
20.7實驗報告要求
第21章實時操作系統RTEMS 
21.1實驗目的
21.2實時操作系統RTEMS簡介
21.3編譯RTEMS 
21.4啟用RTEMS終端
21.5實驗報告要求


作者介紹


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




相關書籍

C語言程序設計原理與開發實例

作者 曹艷如 史琨 張梅

2018-05-01

Linux 系統安全:縱深防禦、安全掃描與入侵檢測

作者 胥峰

2018-05-01

Software Defined Networking (SDN): Anatomy of OpenFlow Volume I (Paperback)

作者 Doug Marschke

2018-05-01