嵌入式Linux系統開發——基於ARM處理器通用平台

嵌入式Linux系統開發——基於ARM處理器通用平台

基本介紹

  • 書名:嵌入式Linux系統開發——基於ARM處理器通用平台
  • 作者:馮新宇
  • ISBN:9787302482192
  • 出版時間:2017.11.01
  • 印刷日期:2017.09.20
  • 印次:1-1
內容介紹,目錄,

內容介紹

本書系統論述了基於ARM處理器的嵌入式Linux系統開發的原理、方法與實踐。全書共15章,分別介紹了嵌入式Linux系統管理、Linux編程基礎、Linux高級編程、Linux核心開發、Linux系統移植和Linux驅動程式開發等。 本書內容吸收了作者在Linux系統教學、科研和實際項目研發中的經驗,實踐性強。在內容編排上,按照讀者學習的一般性規律,結合大量實例論述,能夠使讀者高效地掌握嵌入式Linux系統的基本原理和套用方法。本書既可以作為高等院校相關專業的教材,也可以作為從事嵌入式系統開發人員的參考用書。

目錄

第1章Linux概述與系統管理 1
1.1嵌入式系統概述 1
1.1.1嵌入式系統的發展歷史 1
1.1.2嵌入式系統的特點 2
1.1.3嵌入式系統的體系結構 2
1.1.4典型嵌入式系統介紹 3
1.2嵌入式Linux基礎 4
1.2.1Linux發行版本 4
1.2.2 Linux定製安裝 6
1.3Linux常用命令 18
1.3.1系統管理相關命令 18
1.3.2檔案管理相關命令 19
1.3.3備份壓縮相關命令 25
1.3.4網路通信相關命令 26
1.3.5其他常用命令 30
1.4伺服器配置 34
1.4.1samba伺服器 34
1.4.2NFS伺服器 38
1.4.3TFTP伺服器 40
習題與練習 42
第2章Linux腳本編程 43
2.1 常用shell命令 43
2.2 腳本編寫基礎 44
2.2.1 特殊字元 44
2.2.2 變數和參數 46
2.2.3退出和退出狀態 48
2.3流程控制 49
2.3.1條件測試 49
2.3.2操作符相關主題 51
2.3.3循環控制 53
2.3.4測試與分支 55
習題與練習 58
第3章Linux編程基礎 59
3.1編輯器介紹 59
3.1.1vi介紹 59
3.1.2vi的各模式功能鍵 60
3.2程式編譯與調試 63
3.2.1gcc編譯流程 64
3.2.2gcc編譯選項分析 64
3.2.3gdb程式調試 69
習題與練習 75
第4章C語言進階 76
4.1C語言的基本知識 76
4.2數據類型 77
4.2.1常量和變數 78
4.2.2進制 78
4.2.3字元 79
4.2.4轉義符與字元集 79
4.2.5類型轉換 79
4.2.6輸入輸出 82
4.2.7運算符 83
4.3控制語句 86
4.3.1分支語句 86
4.3.2循環語句 88
4.4數組與字元串 97
4.4.1數組的定義 97
4.4.2數組本質探討 98
4.4.3一維數組和二維數組 99
4.4.4字元串 101
4.5函式 103
4.5.1函式的定義 103
4.5.2函式的深度剖析 103
4.5.3函式的作用剖析 104
4.6指針 108
4.6.1指針的本質 108
4.6.2連續空間的記憶體地址 108
4.6.3指針變數 109
4.6.4指針數組和指針的指針 111
4.6.5函式和指針 115
4.7預處理指令 119
4.7.1宏定義 120
4.7.2#include 121
4.7.3條件編譯 121
習題與練習 123
第5章檔案I/O編程 124
5.1檔案和目錄 124
5.2目錄操作 126
5.3檔案操作 134
5.3.1基本概念 134
5.3.2檢查檔案及確定檔案的許可權 136
5.3.3創建檔案 137
5.3.4打開檔案 138
5.3.5關閉檔案 139
5.3.6刪除檔案 140
5.3.7檔案指針移動 142
5.3.8其他常用函式 145
5.4設備控制 148
5.5Linux時間編程 159
5.5.1取得目前的時間 159
5.5.2取得目前時間和日期 160
5.5.3取得當地目前時間和日期 161
5.5.4將時間結構數據轉換成經過的秒數 162
5.5.5設定目前時間 162
5.5.6取得當前時間 163
5.5.7將時間和日期以ASCII碼格式表示 164
5.5.8將時間和日期以字元串格式表示 164
習題與練習 165
第6章進程控制 166
6.1進程控制概述 166
6.1.1進程的定義 166
6.1.2進程控制塊 167
6.1.3分配進程描述符 168
6.1.4進程的創建 168
6.1.5進程狀態 169
6.1.6進程調度 171
6.1.7虛擬記憶體 172
6.1.8檔案鎖 172
6.2進程控制編程 173
6.2.1創建進程 173
6.2.2進程終止 181
6.2.3守護進程 186
習題與練習 187
第7章進程間通信 188
7.1進程間通信概述 188
7.2管道通信 190
7.2.1無名管道 190
7.2.2有名管道 192
7.2.3標準流管道 195
7.3訊息佇列 196
7.3.1鍵值 196
7.3.2打開/創建訊息佇列 197
7.3.3傳送訊息 197
7.3.4接收訊息 198
7.3.5訊息控制 198
7.4信號 201
7.4.1信號處理的方式 201
7.4.2信號操作指令 201
7.5信號量 207
7.5.1信號量創建 208
7.5.2信號量操作 208
7.6記憶體共享 214
7.6.1共享記憶體創建 214
7.6.2共享記憶體的操作 216
7.6.3共享記憶體段連線到本進程空間 216
7.6.4共享記憶體解除 217
習題與練習 220
第8章多執行緒技術 221
8.1Linux多執行緒概念 221
8.2Linux執行緒實現 222
8.2.1執行緒創建 222
8.2.2執行緒退出 224
8.2.3執行緒等待 226
8.2.4執行緒標識獲取 228
8.2.5執行緒清除 229
8.3執行緒函式傳遞及修改執行緒的屬性 232
8.3.1執行緒函式傳遞 232
8.3.2綁定屬性 235
8.3.3分離屬性 236
8.3.4優先權屬性 237
8.3.5執行緒的互斥 239
8.3.6執行緒的同步 241
8.3.7信號量 243
習題與練習 245
第9章網路編程 246
9.1基本概念 246
9.1.1OSI模型 246
9.1.2常用命令 247
9.1.4IP設定項 248
9.1.5連線埠 248
9.2TCP/IP協定 249
9.2.1整體構架概述 249
9.2.2IP協定 250
9.2.3ICMP協定 251
9.2.4UDP協定 251
9.2.5TCP協定 252
9.2.6TCP連線的建立 253
9.3基本網路函式介紹 253
9.3.1建立一個socket通信 253
9.3.2對socket定位 254
9.3.3等待連線 255
9.3.4建立socket連線 255
9.4伺服器和客戶端的信息函式 256
9.4.1位元組轉換函式 256
9.4.2IP和域名的轉換 257
9.4.3字元串的IP和32位的IP轉換 259
9.4.4服務信息函式 260
9.5完整的讀寫函式 260
9.5.1 write 260
9.5.2 read 261
9.5.3數據的傳遞 261
9.6用戶數據報傳送 262
9.6.1 recvfrom 262
9.6.2 sendto 262
9.7高級套接字函式 263
9.7.1 recv 263
9.7.2send 263
9.7.3 recvmsg 264
9.7.4sendmsg 264
9.7.5 套接字的關閉 265
9.8套接字選項 265
9.8.1getsockopt 265
9.8.2setsockopt 266
9.8.3ioctl 267
9.9伺服器模型 267
9.9.1循環伺服器:UDP伺服器 267
9.9.2循環伺服器:TCP伺服器 268
9.9.3並發伺服器:TCP伺服器 271
9.9.4並發伺服器:多路復用I/O 272
9.9.5並發伺服器:UDP伺服器 273
習題與練習 276
第10章核心開發基礎 277
10.1嵌入式開發環境搭建 277
10.1.1交叉編譯工具鏈 278
10.1.2終端軟體 281
10.2Linux核心簡介 282
10.2.1Linux核心 282
10.2.2Linux核心原始碼 285
10.3Linux核心配置與編譯 285
10.3.1Linux核心配置 286
10.3.2編譯核心 288
10.4Linux核心模組 288
10.4.1核心模組簡介 288
10.4.2核心模組編譯與相關命令 289
10.5檔案系統 289
10.5.1檔案系統簡介 290
10.5.2根檔案系統 291
10.5.3Busybox 293
10.5.4Ramdisk檔案系統 299
習題與練習 299
第11章BootLoader 300
11.1BootLoader介紹 300
11.1.1BootLoader的安裝和啟動 300
11.1.2 BootLoader的操作模式 301
11.1.3 BootLoader與主機之間的通信方式 301
11.1.4 常用BootLoader介紹 301
11.2U-boot介紹 302
11.2.1目錄結構 302
11.2.2U-boot的主要功能 303
11.2.3U-boot的工具 303
11.3 U-boot工作流程 304
11.3.1stage1 305
11.3.2 stage2 306
11.4 U-boot編譯 308
習題與練習 309
第12章Linux驅動開發基礎與調試 310
12.1設備驅動簡介 310
12.1.1設備類型分類 311
12.1.2核心空間和用戶空間 312
12.1.3驅動程式層次結構 312
12.1.4驅動程式與外界接口 313
12.2列印調試 315
習題與練習 316
第13章字元設備驅動 317
13.1字元設備驅動程式基礎 317
13.1.1關鍵數據結構 317
13.1.2設備驅動開發的基本函式 319
13.1.3設備檔案和設備號 324
13.1.4載入和卸載驅動程式 325
13.2LED設備驅動程式 326
13.2.1LED接口電路 326
13.2.2LED驅動程式 327
13.2.3 載入運行LED驅動程式 329
13.3按鍵設備驅動程式 330
13.3.1按鍵模組硬體電路 330
13.3.2按鍵驅動程式 331
13.3.3載入運行按鍵驅動程式 335
13.4DS18B20驅動程式設計分析 336
13.4.1DS18B20基礎知識 336
13.4.2DS18B20代碼設計 337
習題與練習 344
第14章塊設備驅動 345
14.1塊設備驅動程式開發基礎 345
14.1.1塊設備的I/O操作特點 345
14.1.2塊設備主要數據結構 345
14.1.3塊設備的操作 353
14.2IDE硬碟設備驅動 359
14.2.1IDE硬碟設備原理 359
14.2.2S3C2440與IDE接口電路 360
14.2.3block_device_operations及成員函式 361
14.2.4I/O請求處理 363
14.2.5在核心中增加對新系統IDE設備的支持 369
習題與練習 372
第15章網路設備驅動 373
15.1網路設備驅動簡介 373
15.1.1驅動程式體系結構 373
15.1.2主要數據結構 374
15.1.3基本函式 376
15.2CS8900A網卡設備 378
15.2.1CS8900A簡介 378
15.2.2CS8900A網卡接口電路 379
15.3CS8900A設備驅動程式 380
15.3.1初始化網路設備 380
15.3.2打開網路設備 385
15.3.3關閉網路設備 386
15.3.4中斷處理 387
15.3.5傳送數據 389
15.3.6接收數據 391
習題與練習 392
參考文獻 393

相關詞條

熱門詞條

聯絡我們