该书围绕最流行的32位ARM处理器和源码开放的Linux作业系统,讲述嵌入式系统的概念、软硬体组成、开发过程,以及嵌入式Linux的应用程式和驱动程式的开发设计方法。全书共7章,包括:嵌入式系统基础到ARM体系结构等涉及硬体的内容,嵌入式Linux到应用程式、驱动程式、图形用户界面等软体内容。最后推出自主着作权的轻量级图形用户界面1wGUI,介绍开源Gtk+图形库的使用方法,给出嵌入式Linux在手机中的套用。
与第1版相比,本书主要升级了ARM指令集说明,修订了应用程式和驱动程式设计内容,以适用于国内流行的实验箱。
本书特点是内容经过实际教学使用,所带程式取材于学生的毕业设计和课程实验,不强调具体的ARM核晶片。
本书适用于没有作业系统知识的高校师生和单片机开发人员学习嵌入式系统,可作为高等院校相关专业本科、研究生嵌入式系统理论课程的教材,也可作为从事嵌入式系统开发的工程技术人员学习嵌入式Linux的参考用书。
基本介绍
- 中文名:ARM&Linux嵌入式系统教程
- 出版社:北京航空航天大学出版社
- 出版时间: 2008
- ISBN:9787811243512
出版信息
书 名: ARM&Linux嵌入式系统教程 作 者:马忠梅 李善平
ARM&Linux嵌入式系统教程

开本: 16
定价: 34.00 元
内容简介
本书适用于没有作业系统知识的高校师生和单片机开发人员学习嵌入式系统,可作为高等院校相关专业本科、研究生嵌入式系统理论课程的教材,也可作为从事嵌入式系统开发的工程技术人员学习嵌入式Linux的参考用书。
书籍目录
第1章嵌入式系统基础
1.1嵌入式系统概述
1.2嵌入式处理器
1.3嵌入式作业系统
1.4实时作业系统的核心
1.5嵌入式技术发展现状及趋势
习题
第2章嵌入式系统开发过程
2.1嵌入式软体开发的特点
2.2嵌入式软体的开发流程
2.3嵌入式系统的调试
2.4板级支持包
习题
第3章嵌入式Linux作业系统
3.1Linux及其套用
3.2Linux核心
3.3主流嵌入式Linux系统
3.4嵌入式Linux的实时化改造
习题
第4章ARM体系结构
4.1ARM体系结构概述
4.2ARM编程模型
4.3ARM基本定址方式
4.4ARM指令集
4.5ARM彙编语言程式设计
习题
第5章嵌入式Linux应用程式开发
5.1开发平台简介
5.2开发环境的建立
5.3Linux的使用基础
5.4make工具和gcc编译器
5.5简单嵌入式Linux程式开发
5.6LCD程式设计
5.7USB摄像头程式
5.8音频採集和回放程式
习题
第6章嵌入式Linux驱动程式开发
6.1嵌入式Linux的设备管理
6.2设备驱动程式开发过程
6.3LED驱动程式
6.4键盘驱动程式
6.5触控萤幕驱动程式
6.6Linux2.6核心
习题
第7章嵌入式Linux的GUI
7.1嵌入式GUI
7.2嵌入式GUI的结构特徵
7.31wGUI系统的设计与实现
7.41wGUI系统的套用
7.5GTK+图形库的套用
习题
参考文献
……
ARM介绍
ARM概念
ARM 即Advanced RISC Machines的缩写,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。
ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和众多合作伙伴。
当前ARM体系结构的扩充包括:
·Thumb 16位指令集,为了改善代码密度;
·DSP DSP套用的算术运算指令集;
·Jazeller 允许直接执行Java位元组码。
ARM处理器系列提供的解决方案有:
·无线、消费类电子和图像套用的开放平台;
·存储、自动化、工业和网路套用的嵌入式实时系统;
·智慧卡和SIM卡的安全套用。
ARM发展历史
1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生,由美国加州SanJoseVLSI技术公司製造。
20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。
1990年成立了Advanced RISC Machines Limited(后来简称为ARM Limited,ARM公司)。
20世纪90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界範围,占据了低功耗、低成本和高性能的嵌入式系统套用领域的领先地位。ARM公司既不生产晶片也不销售晶片,它只出售晶片技术授权。
1991 年 ARM 公司成立于英国剑桥,主要出售晶片设计技术的授权。目前,採用 ARM技术智慧财产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网路系统、无线系统等各类产品市场,基于 ARM 技术的微处理器套用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。
ARM 是设计公司,本身不生产晶片。採用转让许可证制度,由合作伙伴生产晶片。
ARM产品系列
当前有5个产品系列——ARM7、ARM9、ARM9E、ARM10和SecurCore。
1、ARM7系列
最佳化用于对价位和功耗敏感的消费套用的低功耗32位核,有:
·嵌入式ICE-RT逻辑;
·非常低的功耗;
·三段流水线和冯·诺依曼结构,提供0.9MIPS/MHz。
2、SecurCore SC100特为安全市场设计,带特定的抗拒窜改和反工程的特性。还带灵活的保护单元确保作业系统和套用数据的安全。
3、ARM9系列
高性能和低功耗领先的硬宏单元,带有:
·5段流水线;
·哈佛结构提供1.1MIPS/MHz。
ARM920T和ARM922T内置全性能的MMU、指令和数据cache和高速AMBA汇流排接口。AMBA片上汇流排是一个开放标準,已成为SoC构建和IP库开发的事实标準。AMBA先进的高性能汇流排(AHB)接口现由所有新的ARM核支持,提供开发全综合设计系统。
ARM940T内置指令和数据cache、保护单元和高速AMBA汇流排接口。
4、ARM9E系列
可综合处理器,带有DSP扩充和紧耦合存储器(TCM)接口,使存储器以完全的处理器速度运转,可直接连线到核心上。
ARM966E-S用于硅片尺寸重要,而对cache没要求的实时嵌入式套用,可配置TCM大小:0、4K、8K、16K,最大达64M。
ARM946E-S内置集成保护单元,提供实时嵌入式作业系统的cache核方案。
ARM926ET-S带Jazelle扩充、分开的指令和数据高速AHB接口及全性能MMU。
VFP9 向量浮点可综合协处理器进一步提高ARM9E处理器性能,提供浮点操作的硬体支持。
5、ARM10系列
硬宏单元,带有:
·64位AHB指令和数据接口;
·6段流水线;
·1.25MIPS/MHz;
·比同等的ARM9器件性能提高50%。
两种新的先进的节能方式得到了异常低的耗电。VFP10协处理器完善地依从ARM10器件提供高性能的浮点
解决方案。
ARM版本
ARM体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。
为了清楚地表达每个ARM套用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号V1~V6表示。
V1版架构
该版架构只在原型机ARM1出现过,只有26位的定址空间,没有用于商业产品。
定址空间:64MB
V2版架构
该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。
版本2a是版本2的变种,ARM3晶片採用了版本2a,是第一片採用片上Cache的ARM处理器。
同样为26位定址空间,现在已经废弃不再使用。
V2版架构与版本V1相比,增加了以下功能:
乘法和乘加指令;
支持协处理器操作指令;
快速中断模式;
SWP/SWPB的最基本存储器与暂存器交换指令;
定址空间仍为:64MB
V3版架构
ARM作为独立的公司,在1990年设计的第一个微处理器採用的是版本3的ARM6。
它作为IP核、独立的处理器、具有片上高速快取、MMU和写缓冲的集成CPU。
变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。
V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动:
定址空间增至32位(4GB);
当前程式状态信息从原来的R15暂存器移到当前程式状态暂存器CPSR中(Current Program Status Register);
增加了程式状态保存暂存器SPSR(Saved Program Status Register);
增加了两种异常模式,使作业系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。;
增加了MRS/MSR指令,以访问新增的CPSR/SPSR暂存器;
增加了从异常处理返回的指令功能。
定址空间:4GB
V4版架构
V4版架构在V3版上作了进一步扩充
V4版架构是目前套用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都採用该架构。
V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。
指令集中增加了以下功能:
符号化和非符号化半字及符号化位元组的存/取指令;
增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;
完善了软体中断SWI指令的功能;
处理器系统模式引进特权方式时使用用户暂存器操作;
把一些未使用的指令空间捕获为未定义指令
V5版架构
V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都採用该版架构。
这些新增命令有:
带有连结和交换的转移BLX指令;
计数前导零CLZ指令;
BRK中断指令;
增加了数位讯号处理指令(V5TE版); 为协处理器增加更多可选择的指令;
改进了ARM/Thumb状态之间的切换效率;
E---增强型DSP指令集,包括全部算法操作和16位乘法操作;
J----支持新的JAVA,提供位元组代码执行的硬体和最佳化软体加速功能。
V6版架构
V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。
此架构在V5版基础上增加了以下功能:
THUMBTM:35%代码压缩;
DSP扩充:高性能定点DSP功能;
JazelleTM:Java性能最佳化,可提高8倍;
Media扩充:音/视频性能最佳化,可提高4倍
ARM微处理器的套用选型
鑒于ARM微处理器的众多优点,随着国内外嵌入式套用领域的逐步发展,ARM微处理器必然会获得广泛的重视和套用。但是,由于ARM微处理器有多达十几种的核心结构,几十个晶片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难,所以,对ARM晶片做一些对比研究是十分必要的。
以下从套用的角度出发,对在选择ARM微处理器时所应考虑的主要问题做一些简要的探讨。
1、ARM微处理器核心的选择
从前面所介绍的内容可知,ARM微处理器包含一系列的核心结构,以适应不同的套用领域,用户如果希望使用WinCE或标準Linux等作业系统以减少软体开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM晶片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。而 ARM7TDMI则没有MMU,不支持Windows CE和标準Linux,但目前有uCLinux等不需要MMU支持的作业系统可运行于ARM7TDMI硬体平台之上。事实上,uCLinux已经成功移植到多种不带MMU的微处理器平台上,并在稳定性和其他方面都有上佳表现。
本书所讨论的S3C4510B即为一款不带MMU的ARM微处理器,可在其上运行uCLinux作业系统。
2、系统的工作频率
系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7晶片系统主时钟为20MHz-133MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz- 233MHz,ARM10最高可以达到700MHz。不同晶片对时钟的处理不同,有的晶片只需要一个主时钟频率,有的晶片内部时钟控制器可以分别为ARM 核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。
3、晶片记忆体储器的容量
大多数的ARM微处理器片记忆体储器的容量都不太大,需要用户在设计系统时外扩存储器,但也有部分晶片具有相对较大的片记忆体储空间,如ATMEL的AT91F40162就具有高达2MB的片内程式存储空间,用户在设计时可考虑选用这种类型,以简化系统的设计。
4、片内外围电路的选择
除ARM微处理器核以外,几乎所有的ARM晶片均根据各自不同的套用领域,扩展了相关功能模组,并集成在晶片之中,我们称之为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等,设计者应分析系统的需求,儘可能採用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可靠性。