出版時(shí)間:2011-6 出版社:清華大學(xué)出版社 作者:羅怡桂 頁(yè)數(shù):187
Tag標(biāo)簽:無(wú)
內(nèi)容概要
本書按“理論聯(lián)系實(shí)踐、分階段循序漸進(jìn)”的思想將內(nèi)容分成了5個(gè)部分,共11章。第1部分是入門部分,分為2章,主要講嵌入式系統(tǒng)、嵌入式Linux的發(fā)展、簡(jiǎn)單的實(shí)踐。第2部分是開(kāi)發(fā)環(huán)境的建立,分3章,主要講U-Boot的建立、交叉編譯工具的建立、調(diào)試環(huán)境的建立。第3部分是內(nèi)核的定制,這一部分主要包括進(jìn)程調(diào)度與內(nèi)存管理2章,其目的為:
一是學(xué)習(xí)Linux的內(nèi)核技術(shù),了解內(nèi)核中的結(jié)構(gòu)、函數(shù),為后一部分嵌入式Linux驅(qū)動(dòng)、應(yīng)用程序的優(yōu)化打基礎(chǔ);
二是學(xué)習(xí)嵌入式Linux內(nèi)核的定制技術(shù),為今后高端嵌入式Linux設(shè)計(jì)與應(yīng)用作準(zhǔn)備。第4部分是嵌入式Linux驅(qū)動(dòng)程序的開(kāi)發(fā),包括驅(qū)動(dòng)的基本技術(shù)、USB驅(qū)動(dòng)的開(kāi)發(fā)與CAN總線驅(qū)動(dòng)的開(kāi)發(fā)。第5部分以宇嵌千里眼中的應(yīng)用程序?yàn)槔v嵌入式Linux應(yīng)用程序的開(kāi)發(fā)。在這5個(gè)部分中融合了嵌入式Linux的系統(tǒng)技術(shù)。本書的實(shí)踐配套同濟(jì)大學(xué)嵌入式系統(tǒng)創(chuàng)新實(shí)驗(yàn)平臺(tái)及其操作手冊(cè),讀者可以邊做邊學(xué)。
書籍目錄
第1部分 嵌入式linux入門
第1章 嵌入式linux簡(jiǎn)介
1.1嵌入式系統(tǒng)
1.1.1什么是嵌入式系統(tǒng)
1.1.2嵌入式系統(tǒng)的需求特點(diǎn)
1.2嵌入式linux
1.2.1linux與嵌入式linux
1.2.2嵌入式linux的現(xiàn)狀
小結(jié)
實(shí)踐作業(yè)1
推薦閱讀1
第2章 嵌入式linux系統(tǒng)的開(kāi)發(fā)過(guò)程及簡(jiǎn)單實(shí)踐
2.1嵌入式linux的開(kāi)發(fā)環(huán)境
2.2嵌入式linux系統(tǒng)的開(kāi)發(fā)過(guò)程
2.3嵌入式教學(xué)創(chuàng)新實(shí)驗(yàn)平臺(tái)簡(jiǎn)介
2.4實(shí)踐1
2.5實(shí)踐2
2.5.1內(nèi)核編譯與下載
2.5.2根文件系統(tǒng)的制作與下載
小結(jié)
實(shí)踐作業(yè)2
推薦閱讀2
第2部分 開(kāi)發(fā)環(huán)境的建立
第3章 交叉編譯環(huán)境的建立
3.1什么是交叉編譯環(huán)境
3.2gcc交叉編譯工具鏈
3.3重建交叉編譯器
3.3.1建立工作目錄
3.3.2建立環(huán)境變量
3.3.3安裝linux的頭文件
3.3.4編譯安裝binutils
3.3.5編譯安裝gcc的c編譯器
3.3.6編譯安裝庫(kù)glibc
3.3.7編譯安裝gcc的c、c++編譯器
3.3.8測(cè)試交叉編譯工具鏈
小結(jié)
實(shí)踐作業(yè)3
推薦閱讀3
第4章 u-boot
4.1u-boot項(xiàng)目簡(jiǎn)介
4.2u-boot結(jié)構(gòu)
4.3u-boot的版本選擇
4.4編譯u-boot
4.5修改內(nèi)存配置
4.6配置flash
4.7驅(qū)動(dòng)e28f128
4.8驅(qū)動(dòng)dm9000
4.9增加命令與應(yīng)用
4.10從u-boot到linux
4.10.1u-boot向內(nèi)核傳遞參數(shù)
4.10.2啟動(dòng)內(nèi)核
小結(jié)
實(shí)踐作業(yè)4
推薦閱讀4
第5章 調(diào)試工具
5.1gdb+gdb server
5.2二進(jìn)制文件輔助工具
5.3mtrace
5.4hooks
5.5硬件仿真器
小結(jié)
實(shí)踐作業(yè)5
推薦閱讀5
第3部分 內(nèi)核定制
第6章 進(jìn)程調(diào)度
6.1嵌入式linux進(jìn)程調(diào)度概述
6.2進(jìn)程的描述
6.3linux 2.4內(nèi)核的調(diào)度算法
6.4linux 2.4應(yīng)用程序中對(duì)進(jìn)程調(diào)度的控制
6.5從linux 2.4調(diào)度算法到linux 2.6調(diào)度算法
6.6linux 2.6調(diào)度算法分析
6.6.1靜態(tài)優(yōu)先級(jí)
6.6.2動(dòng)態(tài)優(yōu)先級(jí)
6.6.3時(shí)間片的計(jì)算
6.6.4休眠進(jìn)程與喚醒進(jìn)程
6.6.5調(diào)度的時(shí)機(jī)
6.6.6linux 2.6內(nèi)核中cpu的負(fù)載平衡
6.6.7調(diào)度策略
6.6.8內(nèi)核算法的調(diào)優(yōu)
6.7從linux 2.6調(diào)度算法到嵌入式linux調(diào)度
6.7.1關(guān)鍵性混雜實(shí)時(shí)任務(wù)集調(diào)度算法
6.7.2最大利用便攜設(shè)備后備電池的實(shí)時(shí)任務(wù)調(diào)度算法
6.7.3基于gui的交互式嵌入式系統(tǒng)的調(diào)度
小結(jié)
實(shí)踐作業(yè)6
推薦閱讀6
第7章 內(nèi)存管理
7.1linux內(nèi)存管理概述
7.2物理內(nèi)存管理
7.3內(nèi)核內(nèi)存管理
7.4虛擬內(nèi)存管理器
7.5內(nèi)核虛擬內(nèi)存管理器
7.6從linux內(nèi)存管理到嵌入式linux內(nèi)存管理
7.6.1調(diào)度協(xié)助請(qǐng)頁(yè)預(yù)取
7.6.2主動(dòng)交換延遲回寫
7.6.3改進(jìn)buddy系統(tǒng)
小結(jié)
實(shí)踐作業(yè)7
推薦閱讀7
第4部分 驅(qū)動(dòng)開(kāi)發(fā)
第8章 驅(qū)動(dòng)開(kāi)發(fā)
8.1基礎(chǔ)知識(shí)
8.1.1文件與設(shè)備
8.1.2虛擬文件系統(tǒng)
8.1.3設(shè)備驅(qū)動(dòng)的加載
8.2框架驅(qū)動(dòng)開(kāi)發(fā)
8.3中斷使用
8.3.1linux內(nèi)核的中斷處理機(jī)制
8.3.2中斷的申請(qǐng)
8.4內(nèi)存使用
8.4.1分配slab小塊內(nèi)存
8.4.2分配物理頁(yè)
8.4.3內(nèi)核虛擬地址空間分配
8.4.4bootmem
8.4.5虛擬內(nèi)存區(qū)(vma)與內(nèi)存映射
8.5io及io映射
8.6時(shí)間與時(shí)延使用
8.6.1時(shí)鐘的類型
8.6.2延遲的使用
8.6.3內(nèi)核定時(shí)器
小結(jié)
實(shí)踐作業(yè)8
推薦閱讀8
第9章 usb驅(qū)動(dòng)開(kāi)發(fā)
9.1usb概述
9.2usb總線互連結(jié)構(gòu)
9.3usb的電氣接口
9.4usb數(shù)據(jù)流模型
9.5usb設(shè)備通信模流
9.6usb驅(qū)動(dòng)框架
9.7urb的使用
9.8控制消息的傳輸
9.9批量數(shù)據(jù)傳輸
9.10同步數(shù)據(jù)傳輸
9.11中斷數(shù)據(jù)傳輸
9.12嵌入式系統(tǒng)usb設(shè)備驅(qū)動(dòng)的實(shí)現(xiàn)方案設(shè)計(jì)
9.12.1傳輸方式的確定
9.12.2建模
9.12.3數(shù)據(jù)流分析
9.12.4控制流分析
9.12.5內(nèi)存使用分析
9.12.6調(diào)試方案
9.12.7實(shí)現(xiàn)技術(shù)
9.12.8模塊劃分
9.12.9實(shí)現(xiàn)
小結(jié)
實(shí)踐作業(yè)9
推薦閱讀9
第10章 can總線驅(qū)動(dòng)開(kāi)發(fā)
10.1can總線標(biāo)準(zhǔn)概述
10.2can總線特點(diǎn)
10.3can總線的數(shù)據(jù)格式
10.4一種can總線系統(tǒng)的實(shí)現(xiàn)方法
10.5mcp2510器件功能介紹
10.6can總線驅(qū)動(dòng)程序的方案設(shè)計(jì)
10.6.1can總線驅(qū)動(dòng)程序的體系結(jié)構(gòu)
10.6.2can總線驅(qū)動(dòng)程序建模
10.7can總線的linux驅(qū)動(dòng)程序的實(shí)現(xiàn)
10.7.1s3c2410寄存器地址映射
10.7.2can總線驅(qū)動(dòng)的入口和出口
10.7.3設(shè)置spi接口
10.7.4mcp2510的初始化
10.7.5mcp2510發(fā)送數(shù)據(jù)和接收數(shù)據(jù)
10.7.6中斷函數(shù)
10.7.7讀寫函數(shù)
10.8can總線驅(qū)動(dòng)測(cè)試程序
小結(jié)
實(shí)踐作業(yè)10
推薦閱讀10
第5部分 應(yīng)用程序的開(kāi)發(fā)
第11章 宇嵌千里眼主控程序開(kāi)發(fā)
11.1嵌入式應(yīng)用程序的需求特點(diǎn)
11.2宇嵌千里眼應(yīng)用開(kāi)發(fā)的要求
11.3宇嵌千里眼主控程序開(kāi)發(fā)實(shí)踐
11.3.1建模
11.3.2控制流分析
11.3.3數(shù)據(jù)流分析
11.3.4內(nèi)存使用分析
11.3.5實(shí)時(shí)性分析
11.3.6進(jìn)一步確定實(shí)現(xiàn)技術(shù)
11.3.7模塊劃分
11.3.8再看實(shí)現(xiàn)技術(shù)
11.3.9程序?qū)崿F(xiàn)
小結(jié)
實(shí)踐作業(yè)11
推薦閱讀11
附錄a一種新型petri net:雙層變遷定時(shí)petri net
附錄b雙層變遷定時(shí)petri net抽象化
章節(jié)摘錄
版權(quán)頁(yè):插圖:解決第一個(gè)問(wèn)題的辦法是人為地選擇在當(dāng)前任務(wù)開(kāi)始后的一段時(shí)間開(kāi)始預(yù)取,例如在當(dāng)前任務(wù)執(zhí)行完75%時(shí)開(kāi)始預(yù)取。第二個(gè)問(wèn)題的解決是讓調(diào)度器調(diào)度兩次,第一次返回下一次要預(yù)取的任務(wù),第二次調(diào)度是選擇下一次任務(wù)切換以后要執(zhí)行的任務(wù)。為保證系統(tǒng)的性能,通過(guò)對(duì)任務(wù)調(diào)度器的修改,使第二次調(diào)度的任務(wù)返回總是已預(yù)取的任務(wù)。雖然這會(huì)犧牲一部分系統(tǒng)的響應(yīng)特性,但是對(duì)于軟實(shí)時(shí)嵌入式系統(tǒng)來(lái)說(shuō)是有益的。第三個(gè)問(wèn)題的解決應(yīng)用了程序的局部性原理,對(duì)于最近任務(wù)產(chǎn)生的缺頁(yè)用一張表記錄下來(lái)以免在最近的任務(wù)中再次引起這些頁(yè)的缺頁(yè)錯(cuò)誤。關(guān)于第四個(gè)問(wèn)題,由于Linux的頁(yè)替換算法采用的是LRU算法,將預(yù)取的頁(yè)放到當(dāng)前預(yù)取頁(yè)的后面,以免在下一次切換任務(wù)(已預(yù)取的任務(wù))時(shí)預(yù)取的頁(yè)被替換出去。這一算法已在Linux 2.6.23-rc2版本內(nèi)核中實(shí)現(xiàn)了。主要修改了進(jìn)程的調(diào)度程序,以及虛擬內(nèi)存管理。并分別選取在當(dāng)前任務(wù)執(zhí)行完75%運(yùn)行時(shí)間與50%運(yùn)行時(shí)間后進(jìn)行下一任務(wù)預(yù)取。通過(guò)交互性測(cè)試表明其平均調(diào)度時(shí)延有明顯的改善。較小的調(diào)度時(shí)延表明任務(wù)較快地被調(diào)度執(zhí)行,對(duì)于用戶動(dòng)作有更好的響應(yīng)特性,對(duì)于多媒體回放更平滑。
編輯推薦
《嵌入式Linux實(shí)踐教程》是21世紀(jì)高等學(xué)校嵌入式系統(tǒng)專業(yè)規(guī)劃教材,普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材之一。
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載