內容簡介
本書從初學者的角度出發,由簡單的嵌入式作業系統μC/OS-II引導初學者入門,讓其快速掌握作業系統的相關概念和嵌入式作業系統的特性,具備基本的開發能力;再進階到嵌入式Linux程式開發,掌握具有更廣泛套用範圍的開發技術。在全書中“知識”和“技能”相結合,既有對概念深入淺出的解釋,也有短小精悍的套用代碼,從而幫助讀者快速掌握嵌入式作業系統的開發技能。
本書既可作為高等院校電子類和計算機類專業的教材,也可作為專業技術人員的技術參考書。
圖書目錄
第1章緒論1
1.1嵌入式系統概述1
1.1.1嵌入式系統的發展歷史1
1.1.2嵌入式系統的特點2
1.1.3嵌入式系統的發展前景和趨勢3
1.2嵌入式作業系統概述3
1.2.1嵌入式作業系統的特點3
1.2.2嵌入式作業系統的發展前景4
1.2.3幾種主流的嵌入式作業系統4
1.3嵌入式作業系統的學習路徑9
本章小結9
第2章作業系統基礎知識10
2.1作業系統概論10
2.1.1什麼是作業系統10
2.1.2作業系統的特徵10
2.1.3作業系統的功能11
2.1.4作業系統的發展史12
2.1.5作業系統的分類15
2.2進程管理16
2.2.1程式的並發執行16
2.2.2進程的定義17
2.2.3進程的特徵和狀態17
2.2.4進程控制塊19
2.2.5進程控制20
2.3進程同步與互斥22
本章小結25
第3章μC/OS-II套用編程26
3.1μC/OS-II簡介26
3.2實驗環境搭建27
3.3一個例子28
3.4任務管理API套用30
嵌入式作業系統及編程目錄3.5信號量管理API套用34
3.6互斥型信號量管理API套用38
3.7事件標誌組管理API套用48
3.8訊息信箱管理API套用52
3.9訊息佇列管理API套用56
3.10記憶體管理API套用61
本章小結64
第4章Linux入門65
4.1Linux概述65
4.1.1Linux起源、特性及套用領域65
4.1.2Linux作業系統發行版簡介66
4.2Linux檔案及檔案系統68
4.3Linux常用操作命令71
4.4Debian(Ubuntu)常用命令79
4.4.1設定apt源79
4.4.2常用命令80
4.5vi使用入門81
4.5.1進入vi81
4.5.2退出vi82
4.5.3基本編輯82
4.5.4vi常用指令表82
本章小結84
第5章Linux程式設計預備知識85
5.1C語言基礎回顧85
5.1.1數據類型85
5.1.2運算符和表達式86
5.1.3程式流程控制87
5.1.4數組91
5.1.5函式92
5.1.6指針93
5.1.7位操作93
5.2常用數據結構95
5.2.1鍊表95
5.2.2哈希表99
5.3常用C庫函式100
本章小結104
第6章LinuxShell程式設計105
6.1Shell概述105
6.1.1什麼是Shell105
6.1.2Shell歷史和常見的Shell106
6.1.3Shell的元字元(通配符)107
6.1.4創建和執行Shell程式108
6.2Shell程式設計的語法109
6.2.1變數109
6.2.2條件測試112
6.2.3條件語句114
6.2.4循環語句116
6.2.5函式119
6.2.6雜項命令120
6.3Shell套用實例120
6.3.1軟體安裝腳本121
6.3.2歌曲管理程式122
本章小結126
第7章LinuxC程式設計127
7.1GCC概述127
7.1.1GCC簡介127
7.1.2編譯一個簡單的C程式129
7.1.3Makefile130
7.1.4gdb調試器135
7.2Linux進程138
7.2.1查看Linux進程138
7.2.2啟動Linux進程139
7.2.3Linux進程相關程式設計140
7.3Linux信號142
7.4檔案操作146
7.4.1簡介146
7.4.2檔案操作例子149
7.5訊息佇列、信號量和共享記憶體150
7.5.1訊息佇列151
7.5.2信號量155
7.5.3共享記憶體158
7.6Linux網路編程161
7.6.1網路體系結構簡介161
7.6.2網路編程簡介163
7.6.3Socket編程流程164
7.6.4網路編程例子169
7.7Linux應用程式調試技術175
7.7.1列印語句175
7.7.2strace命令177
7.7.3memwatch179
7.8Linux驅動程式設計180
7.8.1驅動程式設計概述180
7.8.2驅動程式例子184
本章小結188
第8章嵌入式Linux套用設計189
8.1嵌入式開發環境的搭建189
8.1.1嵌入式交叉編譯環境的搭建189
8.1.2超級終端和Minicom配置及使用190
8.1.3下載映像檔案到開發板195
8.2BootLoader套用設計196
8.2.1BootLoader概述196
8.2.2VIVI簡介197
8.2.3VIVI移植主要步驟199
8.3核心移植201
8.3.1Linux核心檔案結構201
8.3.2Linux核心移植202
本章小結202
第9章嵌入式作業系統典型套用--手機開發203
9.1手機開發概述203
9.2搭建開發環境204
9.3應用程式開發和核心開發205
9.3.1應用程式開發205
9.3.2核心開發212
本章小結213附錄AμC/OS-II中使用的數據類型214附錄BμC/OS-II的PC顯示函式215附錄C常用LinuxC函式218參考文獻235