嵌入式Linux開發技術基礎
-
【作 者】主編 伍德雁
【I S B N 】978-7-5170-5514-3
【責任編輯】李炎
【適用讀者群】本專通用
【出版時間】2017-06-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】196
【千字數】303
【印 張】12.25
【定 價】¥28
【叢 書】物聯網工程專業系列教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書是嵌入式Linux開發的基礎教程,介紹了嵌入式Linux的概念和相關的開發技術。在編寫上注重基礎性和可操作性,以應用為驅動,以案例為依托,將理論知識與技能培養相結合。全書共分為15章,包括嵌入式系統和嵌入式Linux的概念、搭建開發環境、開發基礎流程、使用自定義函數、使用多文件、使用make管理項目、文件讀寫、網絡通信、驅動程序、控制嵌入式系統的硬件、QT基礎等內容。
本書由從事嵌入式Linux開發教學工作多年的教師編寫,在組織內容時對廣度和深度都做了充分的考慮,盡量做到對嵌入式Linux開發既有一個比較全面的介紹,又沒有太大的難度。行文風格近似課堂教學,對概念的講解深入淺出,同時具備較強的可操作性,可用作高等院校物聯網專業以及相關專業的教材,也可作為嵌入式Linux開發初學者的入門教材。
本書是嵌入式Linux開發的基礎教程,介紹了嵌入式Linux的概念和相關的開發技術。在編寫上注重基礎性和可操作性,以應用為驅動,以案例為依托,將理論知識與技能培養相結合。
本書由從事嵌入式Linux開發教學工作多年的教師編寫,在組織內容時對廣度和深度都做了充分的考慮,盡量做到對嵌入式Linux開發既有一個比較全面的介紹,又沒有太大的難度。
本書行文風格近似課堂教學,對概念的講解深入淺出,同時具備較強的可操作性,可用作高等院校物聯網專業以及相關專業的教材,也可作為嵌入式Linux開發初學者的入門教材。
近年來,隨著計算機技術的發展、電子制造技術的微型化以及控制理論的完善,嵌入式技術得到了快速發展,并在各行各業得到了廣泛的應用。越來越多的學校開設了與嵌入式系統相關的課程,有些學校甚至開設了嵌入式技術專業。
編者在高等院校從事計算機類課程的教學工作十幾年,對嵌入式Linux開發課程的教學工作也深有體會。眾所周知,IT行業是一個知識更新換代非常快的行業,編者在教學過程中也需要不斷地學習新知識與新技術。在教學和自學的過程中,編者逐漸地發現,“螺旋式學習模型”是掌握一門課程較有效的學習方法之一。
所謂的螺旋式學習模型,是編者借用了軟件工程開發模型中知識自定義的學習模型,是指由淺入深,逐漸迭代的學習方法。首先學習課程最基礎的知識,對課程有了初步的概念后,再適當增加難度和廣度,向前邁進一步,然后如此多次反復,最后對課程的掌握就能達到一個很好的高度。所以,編者每自學一個新的知識,一般都會選擇從最基礎的學起,再逐漸深入。
每一種學習方法都需要有相應的教材作為配套。所以,編者就想結合自己多年的教學經驗和心得,按照“螺旋式學習模型”的思想,編寫一本嵌入式Linux開發的入門教材。這就是本書編寫的初衷。
作為入門教材,本書具有以下特點:
1.簡單。本書在組織內容時對廣度和深度都做了充分的考慮,盡量做到讓初學者對嵌入式Linux開發既有一個比較全面的了解,又沒有太大的難度。因此,選取了一些相對比較簡單的必要的知識,舍棄了燒寫系統、進程控制等一些初級階段較少用或者不用的知識,并在講解驅動程序時使用了虛擬的硬件,使得初學者既能夠理解驅動程序的相關知識,又避開了較難的底層機器指令的操作。
2.行文風格類似課堂講課,通俗易懂。每一個行業都有大量概念和術語,這些概念和術語對于一個資深從業者而言耳熟能詳,但對于初學者來說可能會顯得不是那么友好。針對這個問題,本書以類似課堂講課的風格展開,以通俗易懂的語言解釋相關的概念和術語,盡量避免以概念解釋概念,以術語解釋術語。遇到一些相對比較抽象的概念和術語,書中輔以生活中的現象和例子作類比,以幫助讀者理解。
3.具有較強的可操作性。嵌入式Linux開發是一門實踐性很強的課程,邊學習邊操作才會有好的效果,對于加強記憶、加深理解和保持興趣都有很大的幫助。鑒于此,除了純概念章節外,每章都提供了經典的例子以供讀者實踐。同時,考慮到部分讀者為自學者,除講解例子本身外,還講解了必要的操作過程,文字不容易理解的地方還輔以直觀的插圖,以避免自學者在編輯、編譯、運行中的某個環節被卡住而無計可施。
4.章節結構統一。除第1章是純概念的章節外,其余章節基本上按照“總體概念→例子→程序解讀”的模式展開,在例子前后穿插必要的操作步驟,在程序解讀過程中穿插解釋一些必要的術語和概念。
本書精心編寫了每一個例子,確保每個例子都能正確無誤地運行。并且,從頭到尾都在向讀者灌輸一種好的編程習慣和思想。
為了方便讀者上機實驗,在沒有涉及到嵌入式系統的專用硬件時,本書的例子直接以PC Linux為實驗平臺;只有在涉及到嵌入式系統的專用硬件時,才把程序移植到嵌入式Linux上運行。
本書是編者按照自定義的“螺旋式學習模型”,針對初學者和自學者的一次嘗試,適合高等院校物聯網相關專業、計算機相關專業的在校學生,以及其他自學者、初學者學習使用。
本書在編寫過程中參考了作者手頭和圖書館能借到的所有相關教材,以及網上大量的相關資料。在此衷心感謝這些教材的編者和出版社、網上資料的創作者、轉載者以及相關的網站。
由于編者水平有限,加之時間倉促,書中難免存在不妥和錯誤之處,敬請廣大讀者批評指正。
第1章 認識嵌入式系統 1
1.1 什么是嵌入式系統 1
1.2 嵌入式系統的發展歷史 2
1.3 嵌入式系統的應用 3
1.4 常見的嵌入式操作系統 5
1.5 嵌入式Linux的優點 6
1.6 本書的內容以及結構 7
小結 8
思考與練習 8
第2章 在虛擬機上安裝Linux 9
2.1 虛擬機軟件簡介 9
2.2 下載安裝VMware Workstation Player 10
2.3 Linux發行版本簡介 12
2.4 在虛擬機上安裝CentOS 6.7 14
小結 23
思考與練習 23
第3章 搭建C語言開發環境 24
3.1 IDE和分步開發 24
3.2 安裝C語言開發工具集 24
3.3 優化gedit編碼環境 29
小結 35
思考與練習 35
第4章 第一個Linux C程序Hello world! 36
4.1 準備工作 36
4.2 編寫代碼 36
4.3 編譯、鏈接程序 39
小結 43
思考與練習 43
第5章 使用自定義函數 44
5.1 在程序中使用自定義函數 44
5.2 使用多個自定義函數 48
小結 50
思考與練習 50
第6章 使用多個源文件編程 51
6.1 使用多個源文件編程 51
6.2 多源文件的項目編譯 55
6.3 【項目6.1】的另外版本 56
小結 58
思考與練習 58
第7章 認識和使用make工具 59
7.1 認識make工具 59
7.2 改進版Makefile 63
7.3 Makefile的進階用法 65
7.3.1 偽目標 65
7.3.2 使用變量 66
小結 67
思考與練習 67
第8章 文件讀寫 68
8.1 基于句柄的文件讀操作 68
8.2 基于句柄的文件寫操作 71
8.3 基于流的文件讀寫操作 73
小結 76
思考與練習 76
第9章 網絡通信編程 78
9.1 網絡通信基本原理 78
9.2 網絡編程基礎 81
9.2.1 套接字 81
9.2.2 數據存儲字節序 81
9.2.3 套接字數據類型 82
9.2.4 地址格式轉換 83
9.2.5 網絡編程流程 83
9.3 TCP協議網絡編程實例 84
9.4 UDP協議網絡編程實例 89
小結 94
思考與練習 95
第10章 驅動程序初步 96
10.1 驅動程序基本概念 96
10.2 最簡單的字符設備驅動程序 98
10.3 驅動程序進階1 103
10.4 測試程序 106
小結 108
思考與練習 108
第11章 驅動程序進階2 109
11.1 具備讀寫接口的驅動程序 109
11.2 測試程序 113
小結 115
思考與練習 115
第12章 嵌入式Linux開發基礎 116
12.1 嵌入式系統結構特點 116
12.2 嵌入式系統所采用的處理器(CPU) 117
12.3 凌陽實驗箱簡介 119
12.4 交叉編譯 120
12.5 交叉編譯工具arm-linux-gcc的
安裝和配置 122
12.6 在嵌入式Linux上運行第1個程序
Hello world! 123
小結 126
思考與練習 126
第13章 控制板載LED 127
13.1 控制板載LED的方法和相關概念 127
13.2 爆閃式LED控制程序 129
13.3 跑馬燈LED控制程序 131
13.4 按鍵讀取程序 133
13.5 按鍵控制LED 136
小結 139
思考與練習 139
第14章 串口通信和GPIO的使用 140
14.1 串口通信基礎 140
14.2 串口通信程序 143
14.3 GPIO基礎 149
14.4 GPIO編程 150
小結 153
思考與練習 154
第15章 基于Qt的嵌入式Linux GUI程序
設計基礎 155
15.1 Qt相關概念 155
15.2 最簡單的Qt應用程序Hello world! 157
15.3 人工編碼的Hello world!程序 164
15.4 圖形界面控制LED 166
小結 176
思考與練習 176
附錄1 常用標準輸入輸出函數 177
附錄2 基于句柄的文件讀寫函數 179
附錄3 基于流的文件讀寫函數 181
附錄4 基于套接字的網絡通信函數 185
- Python語言程序設計教程 [郭其標 房宜汕]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]
- 簡單易懂的Python入門教程 [[日]大澤文孝 著]
- Python數據分析之道——Thinking in Pandas [[美]漢娜·斯捷潘內克(Hannah S]
- 深入淺出OpenHarmony——架構、內核、驅動及應用開發全棧 [李傳釗 著]
- MySQL數據庫項目化教程(第二版) [主編 鄭小蓉]
- python青少年趣味編程 [千鋒教育 編著]
- 程序員5天修煉 [施游 鄒月平 曾哲軍 編著]
- Python程序設計應用教程 [王敏 李光正]
- Java面向對象程序設計(微課版) [主編 謝先偉 王海洋]
- Java面向對象程序設計 [主編 張立敏 鄒海濤]
- 工業機器人編程及應用 [主編 向艷芳 胡月霞]
- C語言程序設計(微課版) [主編 夏啟壽]
- C語言程序設計實踐教程 [夏啟壽]
- 單片機應用技術項目教程(C語言版)(第三版) [主編 郭志勇]
- Linux服務器構建與運維管理從基礎到實戰(基于CentOS 8實現) [阮曉龍 馮順磊 董凱倫 于冠軍]
- Python語言程序設計 [張雙獅]
- 火球-UML大戰需求分析(第二版) [張傳波 著]
- HTML5+CSS3前端開發項目式教程(微課版) [主編 譚衛 徐文義]
- Python 程序設計(微課版) [楊智勇 廖丹]
- 數據結構——C語言(微課版) [主編 梁海英]
- UI界面設計與制作教程 [主 編 黎 婭 任勁松]
- UML系統建模及系統分析與設計(第二版) [王欣 張毅 編著]
- Android高級程序設計 [主編 周雯 舒松]
- C程序設計簡明教程 [黃能耿 黃致遠 編著]