出版時間:2012-1 出版社:清華大學(xué)出版社 作者:馮新宇,霍濱焱,吳巖 編著 頁數(shù):356
內(nèi)容概要
本書主要包括嵌入式linux系統(tǒng)管理與編程基礎(chǔ)、linux應(yīng)用程序設(shè)計(jì)、arm程序設(shè)計(jì)、內(nèi)核開發(fā)與系統(tǒng)移植、驅(qū)動程序開發(fā)等5部分內(nèi)容。
本書作者都是長期使用linux系統(tǒng)進(jìn)行教學(xué)、科研和實(shí)際生產(chǎn)工作的教師和工程師,具備豐富的教學(xué)和實(shí)踐經(jīng)驗(yàn)。本書在內(nèi)容編排上,遵循讀者學(xué)習(xí)的一般規(guī)律,結(jié)合大量實(shí)例講解操作步驟,能夠使讀者快速、真正地掌握嵌入式linux系統(tǒng)的基本原理和應(yīng)用。
本書可作為大中專院校相關(guān)專業(yè)的教材,也可以作為嵌入式開發(fā)愛好者的自學(xué)教程和專業(yè)人員的參考手冊。
書籍目錄
第1章 linux概述與系統(tǒng)管理
1.1 嵌入式系統(tǒng)概述
1.1.1 嵌入式系統(tǒng)發(fā)展歷史
1.1.2 嵌入式系統(tǒng)的特點(diǎn)
1.1.3 嵌入式系統(tǒng)的體系結(jié)構(gòu)
1.1.4 典型嵌入式系統(tǒng)介紹
1.2 嵌入式linux基礎(chǔ)
1.2.1 linux發(fā)行版本
1.2.2 linux定制安裝
1.3 linux常用命令
1.3.1 用戶系統(tǒng)相關(guān)命令
1.3.2 文件操作相關(guān)命令
1.3.3 壓縮打包相關(guān)命令
1.3.4 網(wǎng)絡(luò)相關(guān)命令
1.3.5 其他常用命令
1.4 服務(wù)器配置
1.4.1 samba服務(wù)器
1.4.2 實(shí)例進(jìn)階一:samba服務(wù)器配置
1.4.3 nfs服務(wù)器
1.4.4 實(shí)例進(jìn)階二:nfs服務(wù)器配置
1.4.5 tftp服務(wù)器
1.4.6 實(shí)例進(jìn)階三:tftp服務(wù)器配置
1.5 思考與練習(xí)
第2章 linux腳本編程
2.1 常用shell命令
2.2 腳本編寫基礎(chǔ)
2.2.1 特殊字符
2.2.2 變量和參數(shù)
2.2.3 退出和退出狀態(tài)
2.3 流程控制
2.3.1 條件測試
2.3.2 操作符
2.3.3 循環(huán)控制
2.3.4 測試與分支
2.4 實(shí)例進(jìn)階
2.4.1 實(shí)例進(jìn)階一:參數(shù)大小比較
2.4.2 實(shí)例進(jìn)階二:當(dāng)前目錄下的文件數(shù)目統(tǒng)計(jì)
2.5 思考與練習(xí)
第3章 linux編程基礎(chǔ)
3.1 編輯器介紹
3.1.1 vi介紹
3.1.2 vi的各模式功能鍵
3.2 程序編譯與調(diào)試
3.2.1 gcc編譯流程
3.2.2 gcc編譯選項(xiàng)分析
3.2.3 gdb程序調(diào)試
3.3 實(shí)例進(jìn)階
3.3.1 實(shí)例進(jìn)階一:vi使用演示
3.3.2 實(shí)例進(jìn)階二:gcc使用演示
3.3.3 實(shí)例進(jìn)階三:gdb使用演示
3.4 思考與練習(xí)
第4章 文件i/o編程
4.1 基于linux系統(tǒng)的文件編程
4.1.1 文件打開
4.1.2 文件創(chuàng)建
4.1.3 文件關(guān)閉
4.1.4 文件讀取
4.1.5 數(shù)據(jù)寫入
4.1.6 移動文件的讀寫位置
4.1.7 文件描述詞操作
4.1.8 鎖定文件或解除鎖定
4.2 基于c語言庫函數(shù)的文件編程
4.2.1 文件打開
4.2.2 從文件流讀取數(shù)據(jù)
4.2.3 將數(shù)據(jù)寫至文件流
4.2.4 由文件中讀取一個字符
4.2.5 由文件中讀取一字符串
4.2.6 將一指定字符寫入文件流中
4.2.7 將一指定的字符串寫入文件內(nèi)
4.2.8 格式化字符串輸入
4.2.9 格式化輸出數(shù)據(jù)至文件
4.2.10 移動文件流的讀寫位置
4.3 linux時間編程
4.3.1 取得目前的時間
4.3.2 取得目前時間和日期
4.3.3 取得當(dāng)?shù)啬壳皶r間和日期
4.3.4 將時間結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成經(jīng)過的秒數(shù)
4.3.5 設(shè)置目前時間
4.3.6 取得當(dāng)前時間
4.3.7 將時間和日期以ascii格式表示
4.3.8 將時間和日期以字符串格式表示
4.4 實(shí)例進(jìn)階
4.4.1 實(shí)例進(jìn)階一:文件創(chuàng)建
4.4.2 實(shí)例進(jìn)階二:時間轉(zhuǎn)換
4.5 思考與練習(xí)
第5章 進(jìn)程控制
5.1 進(jìn)程控制概述
5.1.1 進(jìn)程的定義
5.1.2 進(jìn)程控制塊
5.1.3 分配進(jìn)程描述符
5.1.4 進(jìn)程描述符的存放
5.1.5 進(jìn)程狀態(tài)
5.1.6 進(jìn)程調(diào)度
5.2 進(jìn)程控制編程
5.2.1 獲取id
5.2.2 進(jìn)程創(chuàng)建
5.2.3 exec函數(shù)族
5.2.4 system()
5.2.5 等待函數(shù)
5.2.6 退出
5.3 實(shí)例進(jìn)階
5.3.1 實(shí)例進(jìn)階一:進(jìn)程創(chuàng)建
5.3.2 實(shí)例進(jìn)階二:exec函數(shù)族使用
5.4 思考與練習(xí)
第6章 進(jìn)程間通信
6.1 進(jìn)程間通信概述
6.2 管道通信
6.2.1 創(chuàng)建管道
6.2.2 建立管道i/o
6.2.3 關(guān)閉管道
6.2.4 建立命名管道
6.3 消息隊(duì)列
6.3.1 鍵值
6.3.2 打開/創(chuàng)建消息隊(duì)列
6.3.3 發(fā)送消息
6.3.4 接收消息
6.3.5 消息控制
6.4 信號
6.4.1 信號發(fā)送與捕捉
6.4.2 信號處理
6.4.3 信號集
6.5 信號量
6.5.1 信號量創(chuàng)建
6.5.2 信號量操作
6.6 內(nèi)存共享
6.6.1 共享內(nèi)存創(chuàng)建
6.6.2 共享內(nèi)存的操作
6.6.3 共享內(nèi)存段連接到本進(jìn)程空間
6.6.4 共享內(nèi)存解除
6.7 實(shí)例進(jìn)階
6.7.1 實(shí)例進(jìn)階一:通過管道輸出字符
6.7.2 實(shí)例進(jìn)階二:消息隊(duì)列綜合應(yīng)用
6.8 思考與練習(xí)
第7章 多線程技術(shù)
7.1 linux多線程概念
7.2 linux線程實(shí)現(xiàn)
7.2.1 線程創(chuàng)建
7.2.2 線程退出
7.2.3 線程等待
7.2.4 線程標(biāo)識獲取
7.2.5 線程清除
7.3 修改線程的屬性
7.3.1 綁定屬性
7.3.2 分離屬性
7.3.3 優(yōu)先級屬性
7.4 實(shí)例進(jìn)階
7.4.1 實(shí)例進(jìn)階一:創(chuàng)建線程
7.4.2 實(shí)例進(jìn)階二:線程退出
7.4.3 實(shí)例進(jìn)階三:用pthread_join()實(shí)現(xiàn)線程等待
7.4.4 實(shí)例進(jìn)階四:獲取線程id
7.4.5 實(shí)例進(jìn)階五:線程清除
7.5 思考與練習(xí)
第8章 網(wǎng)絡(luò)編程
8.1 基本概念
8.1.1 osi模型
8.1.2 常用的命令
8.2 tcp/ip協(xié)議
8.2.1 整體構(gòu)架概述
8.2.2 ip協(xié)議
8.2.3 icmp協(xié)議
8.2.4 udp協(xié)議
8.2.5 tcp協(xié)議
8.2.6 tcp連接的建立
8.3 基本網(wǎng)絡(luò)函數(shù)介紹
8.3.1 建立一個socket通信
8.3.2 對socket定位
8.3.3 等待連接
8.3.4 建立socket連接
8.4 服務(wù)器和客戶機(jī)的信息函數(shù)
8.4.1 字節(jié)轉(zhuǎn)換函數(shù)
8.4.2 ip和域名的轉(zhuǎn)換
8.4.3 字符串形式的ip和32位的ip轉(zhuǎn)換
8.4.4 服務(wù)信息函數(shù)
8.5 完整的讀寫函數(shù)
8.5.1 write()
8.5.2 read()
8.5.3 數(shù)據(jù)的傳遞
8.6 用戶數(shù)據(jù)報(bào)發(fā)送
8.6.1 recvfrom()
8.6.2 sendto()
8.7 高級套接字函數(shù)
8.7.1 recv()
8.7.2 send()
8.7.3 recvmsg()
8.7.4 sendmsg()
8.7.5 套接字的關(guān)閉
8.8 套接字選項(xiàng)
8.8.1 getsockopt()
8.8.2 setsockopt()
8.8.3 ioctl()
8.9 服務(wù)器模型
8.9.1 循環(huán)服務(wù)器:udp服務(wù)器
8.9.2 循環(huán)服務(wù)器:tcp服務(wù)器
8.9.3 并發(fā)服務(wù)器:tcp服務(wù)器
8.9.4 并發(fā)服務(wù)器:多路復(fù)用i/o
8.9.5 并發(fā)服務(wù)器:udp服務(wù)器
8.10 實(shí)例進(jìn)階
8.10.1 實(shí)例進(jìn)階一:ip與域名轉(zhuǎn)換
8.10.2 實(shí)例進(jìn)階二:編寫udp協(xié)議程序?qū)崿F(xiàn)數(shù)據(jù)通信
8.11 思考與練習(xí)
第9章 arm基礎(chǔ)知識
9.1 arm概述
9.1.1 arm處理器工作狀態(tài)與工作模式
9.1.2 arm寄存器組織結(jié)構(gòu)
9.1.3 arm異常處理機(jī)制
9.1.4 arm存儲器結(jié)構(gòu)
9.2 arm指令系統(tǒng)
9.2.1 arm指令格式
9.2.2 arm指令尋址方式
9.3 arm指令集
9.3.1 數(shù)據(jù)處理指令
9.3.2 分支指令
9.3.3 存儲器訪問(load/store)指令
9.3.4 狀態(tài)寄存器訪問指令
9.3.5 協(xié)處理器指令
9.3.6 swi軟中斷指令
9.4 思考與練習(xí)
第10章 arm程序設(shè)計(jì)
10.1 ads集成開發(fā)環(huán)境
10.1.1 ads工具包
10.1.2 命令行開發(fā)工具
10.1.3 codewarrior ide(集成開發(fā)環(huán)境)的使用
10.1.4 axd調(diào)試器的使用
10.2 實(shí)例進(jìn)階
10.2.1 實(shí)例進(jìn)階一:led程序設(shè)計(jì)
10.2.2 實(shí)例進(jìn)階二:按鍵程序設(shè)計(jì)
10.2.3 實(shí)例進(jìn)階三:串口程序設(shè)計(jì)
10.3 思考與練習(xí)
第11章 內(nèi)核開發(fā)基礎(chǔ)
11.1 嵌入式開發(fā)環(huán)境的搭建
11.1.1 交叉編譯工具鏈
11.1.2 終端軟件
11.2 linux內(nèi)核簡介
11.2.1 linux內(nèi)核
11.2.2 linux內(nèi)核源代碼
11.3 linux內(nèi)核配置與編譯
11.3.1 linux內(nèi)核配置
11.3.2 編譯內(nèi)核
11.4 linux內(nèi)核模塊
11.4.1 內(nèi)核模塊簡介
11.4.2 內(nèi)核模塊編譯與相關(guān)命令
11.5 文件系統(tǒng)
11.5.1 文件系統(tǒng)概述
11.5.2 根文件系統(tǒng)
11.5.3 busybox
11.5.4 ramdisk文件系統(tǒng)
11.6 實(shí)例進(jìn)階
11.6.1 實(shí)例進(jìn)階一:安裝交叉編譯工具鏈arm-linux-gcc-4.3.3
11.6.2 實(shí)例進(jìn)階二:x86平臺內(nèi)核配置、編譯
11.7 思考與練習(xí)
第12章 bootloader
12.1 bootloader介紹
12.1.1 bootloader的安裝和啟動過程
12.1.2 bootloader的操作模式
12.1.3 bootloader與主機(jī)之間的通信方式
12.1.4 常用bootloader介紹
12.2 u-boot介紹
12.2.1 目錄結(jié)構(gòu)
12.2.2 u-boot主要功能
12.2.3 u-boot的工具
12.3 u-boot命令
12.3.1 獲取幫助
12.3.2 環(huán)境變量
12.3.3 文件下載
12.3.4 內(nèi)存操作
12.3.5 flash操作
12.3.6 執(zhí)行程序
12.4 u-boot工作流程
12.4.1 stage1
12.4.2 stage2
12.5 u-boot編譯
12.6 實(shí)例進(jìn)階:u-boot移植
12.7 思考與練習(xí)
第13章 linux驅(qū)動開發(fā)基礎(chǔ)與調(diào)試
13.1 設(shè)備驅(qū)動簡介
13.1.1 設(shè)備類型劃分
13.1.2 內(nèi)核空間和用戶空間
13.1.3 驅(qū)動程序?qū)哟谓Y(jié)構(gòu)
13.1.4 驅(qū)動程序與外界的接口
13.2 打印調(diào)試
13.3 思考與練習(xí)
第14章 字符設(shè)備驅(qū)動
14.1 字符設(shè)備驅(qū)動程序基礎(chǔ)
14.1.1 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)
14.1.2 設(shè)備驅(qū)動開發(fā)的基本函數(shù)
14.1.3 設(shè)備文件和設(shè)備號
14.1.4 加載和卸載驅(qū)動程序
14.2 實(shí)例進(jìn)階一:led設(shè)備驅(qū)動程序
14.2.1 led接口電路
14.2.2 led驅(qū)動程序
14.2.3 加載運(yùn)行l(wèi)ed驅(qū)動程序
14.3 實(shí)例進(jìn)階二:按鍵設(shè)備驅(qū)動程序
14.3.1 按鍵模塊硬件電路
14.3.2 按鍵驅(qū)動程序
14.3.3 加載、運(yùn)行按鍵驅(qū)動程序
14.4 思考與練習(xí)
第15章 塊設(shè)備驅(qū)動
15.1 塊設(shè)備驅(qū)動程序開發(fā)基礎(chǔ)
15.1.1 塊設(shè)備的i/o操作特點(diǎn)
15.1.2 塊設(shè)備主要數(shù)據(jù)結(jié)構(gòu)
15.1.3 塊設(shè)備的操作
15.2 實(shí)例進(jìn)階:ide硬盤設(shè)備驅(qū)動
15.2.1 ide硬盤設(shè)備原理
15.2.2 s3c2440與ide接口電路
15.2.3 block_device_operations及成員函數(shù)
15.2.4 i/o請求處理
15.2.5 在內(nèi)核中增加對新系統(tǒng)ide設(shè)備的支持
15.3 思考與練習(xí)
第16章 網(wǎng)絡(luò)設(shè)備驅(qū)動
16.1 網(wǎng)絡(luò)設(shè)備驅(qū)動簡介
16.1.1 驅(qū)動程序體系結(jié)構(gòu)
16.1.2 主要數(shù)據(jù)結(jié)構(gòu)
16.1.3 基本函數(shù)
16.2 cs8900a網(wǎng)卡設(shè)備
16.2.1 cs8900a簡介
16.2.2 cs8900a網(wǎng)卡接口電路
16.3 實(shí)例進(jìn)階:cs8900a設(shè)備驅(qū)動程序
16.3.1 初始化網(wǎng)絡(luò)設(shè)備
16.3.2 打開網(wǎng)絡(luò)設(shè)備
16.3.3 關(guān)閉網(wǎng)絡(luò)設(shè)備
16.3.4 中斷處理
16.3.5 發(fā)送數(shù)據(jù)
16.3.6 接收數(shù)據(jù)
16.4 思考與練習(xí)
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁:插圖:
編輯推薦
《ARM 9嵌入式開發(fā)基礎(chǔ)與實(shí)例進(jìn)階》特點(diǎn):從零開始,輕松入門,圖解案例,清晰直觀,圖文并茂,操作簡單,實(shí)例引導(dǎo),專業(yè)經(jīng)典,學(xué)以致用,注重實(shí)踐,贈配書光盤:包含了實(shí)例源文件及相關(guān)學(xué)習(xí)資料。
圖書封面
評論、評分、閱讀與下載
ARM 9嵌入式開發(fā)基礎(chǔ)與實(shí)例進(jìn)階 PDF格式下載