编辑推荐
《普通高等"十二五"规划教材?实践创新系列:ARM嵌入式系统移植实战开发》可以作为高等院校嵌入式系统开发与应用的教材,嵌入式培训用书,以及嵌入式系统开发技术人员的参考书。
作者简介
韩少云,达内IT培训集团创始人,总裁/CEO,加拿大技术移民。曾任亚信公司软件事业部副总工程师。在软件开发、软件培训、公司运营方面积累了丰富的实战经验,被誉为软件工程师创业的典范。
奚海蛟,博士后,北京融慧广泽科技有限公司创始人,毕业于北京航空航天大学电子工程学院,主要研究嵌入式与物联网、虚拟现实等方向,主持过多个相关大型项目,曾在多家大学与培训机构任教。
目录
第1章 嵌入式系统概述
1.1 嵌入式系统介绍
1.1.1 嵌入式系统概念
1.1.2 嵌入式系统特点
1.1.3 嵌入式产品
1.2 嵌入式操作系统
1.2.1 VxWorks
1.2.2 WinCE
1.2.3 tLC/OS
1.2.4 Symbian
1.2.5 Linux
1.3 嵌入式系统开发流程
1.3.1 嵌入式系统组成
1.3.2 嵌入式系统开发流程
1.4 嵌入式系统的移植
本章小结
第2章 构建嵌入式Linux开发环境
2.1 硬件环境构建
2.1.1 主机与目标板结合的交叉开发模式
2.1.2 硬件要求
2.2 软件环境构建
2.2.1 在虚拟机中设置Linux与Windows共享目录
2.2.2 NFS的配置与启动
2.2.3 嵌入式交叉编译工具的安装
2.2.4 minicom和超级终端的配置及使用
2.2.5 H-JTAG和DNW的安装和使用
本章小结
第3章 Bootloader移植
3.1 Bootloader简介
3.1.1 Bootloader概念
3.1.2 Bootloader启动流程分析
3.1.3 常用的Bootloader介绍
3.2 U-Boot代码分析
3.2.1 U-Boot简介
3.2.2 U-Boot代码结构
3.2.3 U-Boot代码编译
3.2.4 U-Boot代码导读
3.2.5 U-Boot命令
3.3 U-Boot移植
3.3.1 在U-Boot中建立自己的开发板
3.3.2 支持Nor Flash
3.3.3 支持Nand Flash
3.3.4 支持从Nand Flash中启动
3.3.5 支持网—M9000
3.3.6 支持YAFFS文件系统
3.3.7 U-Boot引导内核
3.3.8 移植后U-Boot的使用
本章小结
第4章 内核移植
4.1 Linux内核结构
4.1.1 内核组成
4.1.2 内核目录
4.2 内核Makefile分析
4.2.1 内核Makefile的分类
4.2.2 Makefile的编译流程
4.2.3 Makefile主要内容解析
4.3 内核配置选项
4.3.1 通用选项
4.3.2 模块相关选项
4.3.3 块相关选项
4.3.4 系统类型、特性和启动相关选项
……
第5章 构建Linux根文件系统
第6章 Linux设备驱动移植
第7章 Linux下应用程序的开发和移植
第8章 Android在S3C6410上的移植
参考文献
文摘
版权页:
插图:
3.网络接口
网络接口是区别于字符设备和块设备的第三大标准类设备,与前两种设备不同,因为Unix世界里“一切皆是文件”的论述对于它来说并不适用。例如,块设备可以在系统文件树的ldev目录下找到特定的文件入口标志,而网络设备则没有这种文件操作人口。Unix式的操作系统访问网络接口的方法是给它们分配一个唯一的名字(比如eth0),而这个名字在文件系统中(比如刚刚提到的/dev目录下)不存在对应的节点项。网络接口同时具有字符设备、块设备的部分特点,但是都有不同。相比于字符设备,它的输入/输出是有结构的、成块的(报文、包、帧)。相比于块设备,它的“块”又不是固定大小的,可以大到数百甚至数千字节,又可以小到几个字节。由于网络接口并不是以文件的方式存在,这就导致应用程序、内核和网络驱动程序间的通信完全不同于字符设备和块设备,内核提供了一套push等操作来完成数据包的转换与递送,而不是open,read和write等。6.1.3 Linux设备驱动移植步骤
本节来介绍一下本章的重点-Linux设备驱动的移植。其实,Linux设备驱动的移植就是将写好的驱动程序添加到相应的内核中去。这里说的相应的内核而不是所有的内核,其原因是不同的内核它的目录树的结构是不同,即其中有些头文件的位置是不同的。甚至,其中的一些函数也不相同。所以在移植驱动程序的时候一定要注意驱动程序开发所参照的内核版本和所移植的版本要相同。
设备驱动程序移植有如下4个步骤:
(1)准备内核源码
准备要移植到的操作系统平台的源码,因为无论将驱动程序编译成模块还是将驱动程序添加到内核中编译内核,都需要该平台的内核源码包。
(2)准备驱动程序源码
该源码可以是自己写的驱动程序,也可以是别人写好的驱动程序,但前提是该驱动和所要移植的内核版本符合。
(3)编译驱动程序到内核
编译驱动程序可以分为两种形式:
①将准备好的驱动程序代码放到内核相应的目录下,并通过修改Makefile和Kconfig文件将其添加到内核目录树中,然后通过makemenuconfig配置该选项。
②使用准备好的内核源码将驱动程序编译成内核模块,将编译好的模块移植到相应的操作系统平台上,加载模块。
(4)测试驱动程序
编写简单的测试程序,测试所添加的驱动程序,查看其是否可用。
相关阅读:
更多图书资讯可访问读书人图书频道:http://www.reAder8.cn/book/