嵌入式Linux实践教程

出版时间:2011-6  出版社:清华大学出版社  作者:罗怡桂  页数:187  
Tag标签:无  

内容概要

  本书按“理论联系实践、分阶段循序渐进”的思想将内容分成了5个部分,共11章。第1部分是入门部分,分为2章,主要讲嵌入式系统、嵌入式Linux的发展、简单的实践。第2部分是开发环境的建立,分3章,主要讲U-Boot的建立、交叉编译工具的建立、调试环境的建立。第3部分是内核的定制,这一部分主要包括进程调度与内存管理2章,其目的为:
一是学习Linux的内核技术,了解内核中的结构、函数,为后一部分嵌入式Linux驱动、应用程序的优化打基础;
二是学习嵌入式Linux内核的定制技术,为今后高端嵌入式Linux设计与应用作准备。第4部分是嵌入式Linux驱动程序的开发,包括驱动的基本技术、USB驱动的开发与CAN总线驱动的开发。第5部分以宇嵌千里眼中的应用程序为例讲嵌入式Linux应用程序的开发。在这5个部分中融合了嵌入式Linux的系统技术。本书的实践配套同济大学嵌入式系统创新实验平台及其操作手册,读者可以边做边学。

书籍目录

第1部分 嵌入式linux入门
 第1章 嵌入式linux简介
  1.1嵌入式系统
   1.1.1什么是嵌入式系统
   1.1.2嵌入式系统的需求特点
  1.2嵌入式linux
   1.2.1linux与嵌入式linux
   1.2.2嵌入式linux的现状
  小结
  实践作业1
  推荐阅读1
 第2章 嵌入式linux系统的开发过程及简单实践
  2.1嵌入式linux的开发环境
  2.2嵌入式linux系统的开发过程
  2.3嵌入式教学创新实验平台简介
  2.4实践1
  2.5实践2
   2.5.1内核编译与下载
   2.5.2根文件系统的制作与下载
  小结
  实践作业2
  推荐阅读2
第2部分 开发环境的建立
 第3章 交叉编译环境的建立
   3.1什么是交叉编译环境
   3.2gcc交叉编译工具链
   3.3重建交叉编译器
   3.3.1建立工作目录
   3.3.2建立环境变量
   3.3.3安装linux的头文件
   3.3.4编译安装binutils
   3.3.5编译安装gcc的c编译器
   3.3.6编译安装库glibc
   3.3.7编译安装gcc的c、c++编译器
   3.3.8测试交叉编译工具链
  小结
  实践作业3
  推荐阅读3
 第4章 u-boot
  4.1u-boot项目简介
  4.2u-boot结构
  4.3u-boot的版本选择
  4.4编译u-boot
  4.5修改内存配置
  4.6配置flash
  4.7驱动e28f128
  4.8驱动dm9000
  4.9增加命令与应用
  4.10从u-boot到linux
   4.10.1u-boot向内核传递参数
   4.10.2启动内核
  小结
  实践作业4
  推荐阅读4
 第5章 调试工具
  5.1gdb+gdb server
  5.2二进制文件辅助工具
   5.3mtrace
   5.4hooks
   5.5硬件仿真器
  小结
  实践作业5
  推荐阅读5
第3部分 内核定制
 第6章 进程调度
  6.1嵌入式linux进程调度概述
  6.2进程的描述
  6.3linux 2.4内核的调度算法
  6.4linux 2.4应用程序中对进程调度的控制
  6.5从linux 2.4调度算法到linux 2.6调度算法
  6.6linux 2.6调度算法分析
   6.6.1静态优先级
   6.6.2动态优先级
   6.6.3时间片的计算
   6.6.4休眠进程与唤醒进程
   6.6.5调度的时机
   6.6.6linux 2.6内核中cpu的负载平衡
   6.6.7调度策略
   6.6.8内核算法的调优
  6.7从linux 2.6调度算法到嵌入式linux调度
   6.7.1关键性混杂实时任务集调度算法
   6.7.2最大利用便携设备后备电池的实时任务调度算法
   6.7.3基于gui的交互式嵌入式系统的调度
  小结
  实践作业6
  推荐阅读6
 第7章 内存管理
  7.1linux内存管理概述
  7.2物理内存管理
  7.3内核内存管理
  7.4虚拟内存管理器
  7.5内核虚拟内存管理器
  7.6从linux内存管理到嵌入式linux内存管理
   7.6.1调度协助请页预取
   7.6.2主动交换延迟回写
   7.6.3改进buddy系统
  小结
  实践作业7
  推荐阅读7
第4部分 驱动开发
 第8章 驱动开发
  8.1基础知识
   8.1.1文件与设备
   8.1.2虚拟文件系统
   8.1.3设备驱动的加载
  8.2框架驱动开发
  8.3中断使用
   8.3.1linux内核的中断处理机制
   8.3.2中断的申请
  8.4内存使用
   8.4.1分配slab小块内存
   8.4.2分配物理页
   8.4.3内核虚拟地址空间分配
   8.4.4bootmem
   8.4.5虚拟内存区(vma)与内存映射
  8.5io及io映射
  8.6时间与时延使用
   8.6.1时钟的类型
   8.6.2延迟的使用
   8.6.3内核定时器
  小结
  实践作业8
  推荐阅读8
 第9章 usb驱动开发
  9.1usb概述
  9.2usb总线互连结构
  9.3usb的电气接口
  9.4usb数据流模型
  9.5usb设备通信模流
  9.6usb驱动框架
  9.7urb的使用
  9.8控制消息的传输
  9.9批量数据传输
  9.10同步数据传输
  9.11中断数据传输
  9.12嵌入式系统usb设备驱动的实现方案设计
   9.12.1传输方式的确定
   9.12.2建模
   9.12.3数据流分析
   9.12.4控制流分析
   9.12.5内存使用分析
   9.12.6调试方案
   9.12.7实现技术
   9.12.8模块划分
   9.12.9实现
  小结
  实践作业9
  推荐阅读9
 第10章 can总线驱动开发
  10.1can总线标准概述
  10.2can总线特点
  10.3can总线的数据格式
  10.4一种can总线系统的实现方法
  10.5mcp2510器件功能介绍
  10.6can总线驱动程序的方案设计
   10.6.1can总线驱动程序的体系结构
   10.6.2can总线驱动程序建模
  10.7can总线的linux驱动程序的实现
   10.7.1s3c2410寄存器地址映射
   10.7.2can总线驱动的入口和出口
   10.7.3设置spi接口
   10.7.4mcp2510的初始化
   10.7.5mcp2510发送数据和接收数据
   10.7.6中断函数
   10.7.7读写函数
  10.8can总线驱动测试程序
  小结
  实践作业10
  推荐阅读10
第5部分 应用程序的开发
 第11章 宇嵌千里眼主控程序开发
  11.1嵌入式应用程序的需求特点
  11.2宇嵌千里眼应用开发的要求
  11.3宇嵌千里眼主控程序开发实践
   11.3.1建模
   11.3.2控制流分析
   11.3.3数据流分析
   11.3.4内存使用分析
   11.3.5实时性分析
   11.3.6进一步确定实现技术
   11.3.7模块划分
   11.3.8再看实现技术
   11.3.9程序实现
  小结
  实践作业11
  推荐阅读11
附录a一种新型petri net:双层变迁定时petri net
附录b双层变迁定时petri net抽象化

章节摘录

版权页:插图:解决第一个问题的办法是人为地选择在当前任务开始后的一段时间开始预取,例如在当前任务执行完75%时开始预取。第二个问题的解决是让调度器调度两次,第一次返回下一次要预取的任务,第二次调度是选择下一次任务切换以后要执行的任务。为保证系统的性能,通过对任务调度器的修改,使第二次调度的任务返回总是已预取的任务。虽然这会牺牲一部分系统的响应特性,但是对于软实时嵌入式系统来说是有益的。第三个问题的解决应用了程序的局部性原理,对于最近任务产生的缺页用一张表记录下来以免在最近的任务中再次引起这些页的缺页错误。关于第四个问题,由于Linux的页替换算法采用的是LRU算法,将预取的页放到当前预取页的后面,以免在下一次切换任务(已预取的任务)时预取的页被替换出去。这一算法已在Linux 2.6.23-rc2版本内核中实现了。主要修改了进程的调度程序,以及虚拟内存管理。并分别选取在当前任务执行完75%运行时间与50%运行时间后进行下一任务预取。通过交互性测试表明其平均调度时延有明显的改善。较小的调度时延表明任务较快地被调度执行,对于用户动作有更好的响应特性,对于多媒体回放更平滑。

编辑推荐

《嵌入式Linux实践教程》是21世纪高等学校嵌入式系统专业规划教材,普通高等教育“十一五”国家级规划教材之一。

图书封面

图书标签Tags

评论、评分、阅读与下载


    嵌入式Linux实践教程 PDF格式下载


用户评论 (总计2条)

 
 

  •   这本书不错,是我们学院嵌入式linux课程的教材
  •   虽然书不怎么厚,涉及的知识却不少。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7