logo资料库

嵌入式Linux系统开发完全手册_基于4412_上册.pdf

第1页 / 共107页
第2页 / 共107页
第3页 / 共107页
第4页 / 共107页
第5页 / 共107页
第6页 / 共107页
第7页 / 共107页
第8页 / 共107页
资料共107页,剩余部分请下载后查看
前言.pdf
第1章 嵌入式开发概述
1.1 嵌入式系统介绍
1.1.1 嵌入式系统的概念
1.1.2 嵌入式技术的发展历史
1. SCM(Single Chip Microcomputer)
2. MCU(Micro Controller Unit)
3. SoC(System On a Chip)
1.2 基于ARM处理器的嵌入式Linux系统
1.2.1 ARM处理器介绍
1. ARM的概念:
2. ARM体系架构的版本:
3. ARM处理器系列:
1.2.2 在嵌入式系统中选择Linux的理由
1.3 嵌入式Linux开发板选型
1.3.1 概念纠正
1. 写驱动不涉及CPU,只涉及CPU之外的设备
2. 一理通,百理明:掌握了原理,通吃所有芯片
1.3.2 怎么选择开发板呢?
1. 对于初学者: 我建议用S3C2440入门。
2. 学完S3C2440后再换另一种开发板重写代码
3. 对于已经有工作能力的人,建议考虑国产芯片,比如cubieboard/cubietruck开发板。
1.4本章小结
第2章 嵌入式Linux开发环境搭建
2.1 硬件环境构建
2.1.1 主机与目标板结合的交叉开发模式
2.1.2 硬件要求
1. 主机要求:
2. 目标板要求:
2.2 软件环境构建
2.2.1 主机Linux操作系统的安装
1. 在Windows上安装虚拟机VMware
2. 用VMware打开我们提供的虚拟机映象
2.2.2 主机Linux操作系统上网络服务的配置与启动
2.2.4 光盘的内容结构及安装
1. 光盘的内容结构:
2. 安装光盘:
第3章 相关工具、命令的使用
3.1 Windows环境下的工具介绍
3.1.1 代码阅读、编辑工具Source Insight
1. 创建一个Source Insight工程
2. “同步”源文件
3. Source Insight工程使用示例
3.1.2 文件传输工具cuteftp
3.1.3 远程登录工具SecureCRT
3.1.4 TFTP服务器软件Tftpd32
3.2 Linux环境下的工具、命令介绍
3.2.1 代码阅读、编辑工具KScope
1. 安装KScope
2. 建立KScope工程
3. KScope工程使用示例
3.2.2 远程登录工具C-kermit
3.2.3 编辑命令vi
1. 命令行模式
2. 文本输入模式
3. 末行模式
3.2.4 查找命令grep、find命令
1. grep命令
2. find命令
3.2.5 在线手册查看命令man
3.2.6 其他命令:tar、diff、patch
1. tar命令
2. diff、patch命令
第4章 嵌入式编程基础知识.pdf
4.1 常用的几条汇编指令
4.2 交叉编译工具选项说明
4.1.1 arm-linux-gcc选项
1. 总体选项(Overall Option)
2. 警告选项(Warning Option)
3. 调试选项(Debugging Option)
4. 优化选项(Optimization Option)
5. 连接器选项(Linker Option)
6. 目录选项(Directory Option)
4.1.2 arm-linux-ld选项
1. 直接指定代码段、数据段、bss段的起始地址
2. 使用连接脚本设置地址
4.1.3 arm-linux-objcopy选项
1. input-file、outfile
2. -I bfdname 或--input-target=bfdname
4. -O bfdname 或--output-target= bfdname
4. -F bfdname或--target= bfdname
5. -R sectionname或--remove-section= sectionname
6. -S或--strip-all(strip,剥去、剥)
7. -g或--strip-debug
4.1.4 arm-linux-objdump选项
1. -b bfdname 或--target=bfdname
2. --disassemble 或-d
3 --disassemble-all或-D
4 -EB或-EL或--endian={big|little}
5. --file-headers或-f
6. --section-headers、--headers或-h
7. --info或-i
8 --section=name或-j name
9 --architecture=machine或-m machine
4.1.5 汇编代码、机器码和存储器的关系以及数据的表示
4.2 Makefile介绍
4.2.1 Makefile规则
4.2.2 Makefile文件里的赋值方法
4.2.3 Makefile常用函数
1. 字符串替换和分析函数
2. 文件名函数
3. 其他函数
4.3 常用ARM汇编指令及ATPCS规则
4.4.1 本书使用的所有汇编指令
1. 相对跳转指令:b、bl
2. 数据传送指令mov,地址读取伪指令ldr
3. 内存访问指令:ldr、str、ldm、stm
4. 加减指令:add、sub
5. 程序状态寄存器的访问指令:msr、mrs
6. 其他伪指令
7. 汇编指令的执行条件
4.4.2 ARM-THUMB子程序调用规则ATPCS
1. 寄存器使用规则
2. 数据栈使用规则
3. 参数传递规则
第5章 GPIO接口
5.1 GPIO硬件介绍
5.1.1 Exynos 4412的GPIO寄存器
2. GPXXDAT寄存器
3. GPXXPUD寄存器
5.1.2 怎样使用软件来访问硬件
1. 访问单个引脚
2. 以某种协议的接口访问硬件
3. 以内存接口访问硬件
5.2 GPIO操作实例:LED和按键
5.2.1 硬件设计
5.2.2 程序设计及代码详解
1. 实例1:使用汇编代码点亮一个LED
2. 实例2:使用C语言代码点亮一个LED
3. 实例5:使用按键来控制LED
5.3 Exynos 4412的启动过程
5.3.1 Exynos 4412启动过程
5.3.2 裸板烧写过程
5.3.3 连接脚本分析
第6章 时钟管理单元
6.1 时钟体系
6.1.1 Exynos 4412的时钟体系
6.1.2 Exynos 4412中设置PLL的方法
6.1.3 PLL寄存器
6.2 APLL操作实例
6.2.1 程序设计
6.2.2 代码详解
1. 05.system_clock_disable_apll:
2. 06.system_clock_apll:设置APLL输出1.4GHz时钟
3. 07.system_clock_plls:参考u-boot代码,设置了APLL、MPLL、EPLL、VPLL,及其他MUX、DIV
第7章 通用异步收发器UART
7.1 UART原理及UART部件使用方法
7.1.1 UART原理说明
7.1.2 Exynos4412 UART的特性
7.1.3 Exynos4412 UART的使用
1. 将所涉及的UART通道管脚设为UART功能
2. 选择UART的时钟源
3. 设置波特率:UBRDIVn寄存器(UART BAUD RATE DIVISOR)、UFRACVALn寄存器
4. 设置传输格式:ULCONn寄存器(UART LINE CONTROL)
5. 设置UART工作模式:UCONn寄存器(UART CONTROL)
6. UFCONn寄存器(UART FIFO CONTROL)、UFSTATn寄存器(UART FIFO STATUS)
7. UMCONn寄存器(UART MODEM CONTROL)、UMSTATn寄存器(UART MODEM STATUS)
8. UTRSTATn寄存器(UART TX/RX STATUS)
9. UERSTATn寄存器(UART ERROR STATUS)
10. UTXHn寄存器(UART TRANSMIT BUFFER REGISTER)
11. URXHn寄存器(UART RECEIVE BUFFER REGISTER)
7.2 UART操作实例
7.2.1 代码详解
1. UART时钟源
2. UART的初始化
3. UART的使用
7.2.2 实例测试
1. PC上的串口工具推荐
2. 测试方法
前言 前言 《嵌入式 Linux 应用开发完全手册》是 2008 年出版的,2009 年起我开始在各大培训机 构担任特聘讲师,2012 年创建深圳百问网科技有限公司并发布“韦东山嵌入式 Linux 培训” 系列视频。通过这几年的积累,我感觉可以把书写得更好、内容更多、更丰富,所以打算出 新书:《嵌入式 Linux 系统开发完全手册》上中下三册: 上册:主讲裸板,对于 Exynos4412 上众多外设,先讲原理,再写程序。 中册:主讲驱动。 下册:主讲项目,制作真实产品。 我们的目标,是写出一本“经典的硬件/驱动工具书”,“从零深入的完全手册”,“教会你 从零开发真实产品的书”。比如不懂 SPI 协议,看上册;不懂 SPI 驱动,看中册;要做一款产 品,看下册。 上中两册,估计要历时 1、2 年,每周发布一章;下册,没有时间表。 我们之所以选择 Exynos4412,是因为它的芯片资料非常开放,片上资源丰富。 如果你是刚入门的话,我们还是建议您选择 S3C2440,因为新书是持续更新,不会很快 出完。 如果你已经使用 S3C2440 入门了,那么非常欢迎选择 Exynos4412 来深化学习。 对于如何选择开发板,我们用一节来专门讲解这个问题,请看《1.3 嵌入式 Linux 开发 板选型》。 百问网的下一步计划是: 1. 完成第 3 期项目视频 2. 开始第 4 期视频:拆解/实现产品 3. 基于 Exynos4412 写《嵌入式 Linux 系统完全开发手册》上中下三册 作 者:韦东山 万勇 谢泓宇 钟尚明 文档 更新地址:http://pan.baidu.com/share/home?uk=2520074993 子目录“4412” 邮 箱:weidongshan@qq.com 公司网站/论坛:www.100ask.org 淘 宝 网 店:100ask.taobao.com 微信 公 众 号:百问网 微信 二维码: – 1 –
第 1 章 嵌入式 Linux 开发板选型 第 1 章 嵌入式 Linux 开发概述 本章目标  了解嵌入式系统的概念及发展历史;  了解 ARM 处理器;  了解各类嵌入式操作系统。 1.1 嵌入式系统介绍 1.1.1 嵌入式系统的概念 嵌入式系统在术语上被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、 适用于应用系统,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它的特 点在于两方面:嵌入、专用。 从 20 世纪 70 年代起,微型机以小型、价廉、高速数值计算等特点迅速走向市场,它所 具备的智能化水平在工业控制领域发挥了作用,常被组装成各种形状,“嵌入”到一个对象体 系中,进行某类智能化的控制。这样一来,计算机便失去了原来的形态与“通用”的功能, 为区别于通用计算机系统,将这类为了某个“专用”的目的,而“嵌入”到对象体系中的计 算机机系统,称为嵌入式计算机系统,简称嵌入式系统。 含有嵌入式系统的设备就被称为嵌入式设备,这在生活中随处可见:电子表、手机、MP3 播放器、摇控器等等,涵盖了生产、工业控制、通信、网络、消费电子、汽车电子、军工等 领域。从通俗、广义的角度来说,除电脑、超级计算机等具备比较强大计算能力及系统资源(比 如内存、存储器等)的电子系统之外,凡具备计算能力的设备都可称之为嵌入式设备。并且随 着技术的进步,嵌入式设备的性能越来越高,一个相对高级的 PDA 的价格、性能并不弱于一 般的电脑。 嵌入式设备常应用于“特定”场合,与“通用的”个人电脑相比,具备了上面的术语中 定义的各种特点: 1.软件硬件可裁剪 如果能够将市面上的手机拆开,会发现虽然它们的功能是相似的,但是所用芯片多种多 样,所用的操作系统也有多种,操作界面更是千变万化,操作的便利性各有千秋。这不同于 个人电脑:CPU 除了 INTEL 就是 AMD,操作系统多用 Windows。功能、成本、开发效率等条件 决定了嵌入式设备的选材多样化,软件硬件可裁剪:当不需要某项功能时,可以去除相关的 软硬件。 2.对功能、可靠性、成本、体积、功耗严格要求 其中功能、可靠性、功耗这三点对于软件开发人员来说是最值得关注的地方。仍以手机 – 1 –
第 1 章 嵌入式 Linux 开发板选型 为例,当选定硬件平台之后,处理器的性能已经被限定了,怎样使得手机的操作更人性化、 菜单响应更快捷、具备更多更好的功能,这完全取决于软件了。需要驱动程序和应用程序配 合,最大程序地发挥硬件的性能。也许读者见过这类手机,它的屏幕总是经过很长时间才熄 灭,这使得它的电池很快耗光,只要在编写软件时进行改进,就可能成倍地延长电池的使用 时间。一个优秀的嵌入式系统,对硬件性能的“压榨”、对软件的细致调节,已经到了精益求 益的地步。有时候甚至为了节省几秒的启时间而大动脑筋:调整程序的启动顺序让耗时的程 序稍后运行、改变程序的存储方式以便更快地加载等等,甚至通过显示一个进度条让用户觉 得时间没那么长。 1.1.2 嵌入式技术的发展历史 嵌入式技术在 20 世纪 70 年代起源于微型机,从此之后,通用计算机与嵌入式计算机就 走上了两条不同的道路。通用计算机系统的技术要求是高速、海量的数值计算;技术发展方 向是总线速度的无限提升,存储容量的无限扩大。 而嵌入式计算机系统的技术要求则是对象 的智能化控制能力;技术发展方向是与对象系统密切相关的嵌入性能、控制能力与控制的可 靠性。 嵌入式技术的发展日新月异,经历了单片机(SCM)、微控制器(MCU)、系统级芯片(SoC) 三大阶段: 1. SCM(Single Chip Microcomputer) 又称单片微型计算机,简称单片机,是指随着大规模集成电路的出现及其发展,将计算 机的 CPU、RAM、ROM、定时数器和多种 I/O 接口集成在一片芯片上,形成芯片级的计算机。 这个阶段主要是“寻求”单片形态嵌入式系统的最佳体系结构,也是从这个阶段起,嵌 入式计算机技术与通用计算机技术走上两条不同的道路。 2. MCU(Micro Controller Unit) MCU 即微控制器阶段的特征是:“满足”各类嵌入式应用,根据对象系统要求扩展各种外 围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因 此,发展 MCU 的重任不可避免地落在电气、电子技术厂家。 实际上,MCU、SCM 之间的概念在日常工作中并不严格区分,很多时候一概以“单片机” 称呼。随着能够运行更复杂软件(比如操作系统)的 SoC 的出现,“单片机”通常是指不运行操 作系统的、功能相对单一的嵌入式系统──这不是绝对的,比如 8051 上就可以运行一个名为 RTX51 的实时操作系统,它只有 6K 左右,相比于 Linux、Windows CE 等操作系统而言比较简 单。 3. SoC(System On a Chip) 随着设计与制造技术的发展,集成电路设计从晶体管的集成发展到逻辑门的集成,现在 又发展到 IP 的集成,即 SoC(System on a Chip)设计技术。SoC 可以有效地降低电子/信息系 统产品的开发成本,缩短开发周期,提高产品的竞争力,是未来工业界将采用的最主要的产 品开发方式。 – 2 –
第 1 章 嵌入式 Linux 开发板选型 虽然 SoC 一词多年前就已出现,但到底什么是 SoC 则有各种不同的说法。在经过了多年 的争论后,专家们就 SoC 的定义达成了一致意见。这个定义虽然不是非常严格,但明确地表 明了 SoC 的特征: ① 实现复杂系统功能的 VLSI; ② 采用超深亚微米工艺技术; ③ 使用一个以上嵌入式 CPU/数字信号处理器(DSP); ④ 外部可以对芯片进行编程; ⑤ 主要采用第三方 IP 进行设计。 从上述 SoC 的特征来看,SoC 中包含了微处理器/微控制器、存储器以及其他专用功能逻 辑,但并不是包含了微处理器、存储器以及其他专用功能逻辑的芯片就是 SoC──8051 就集 成了微处理器、存储器时部件,但它不属于 SoC。SoC 技术被广泛认同的根本原因,并不在于 SoC 可以集成多少个晶体管,而在于 SoC 可以用较短时间被设计出来。这是 SoC 的主要价值 所在——缩短产品的上市周期,因此,SoC 更合理的定义为:SoC 是在一个芯片上由于广泛使 用预定制模块 IP(Intellectual Property)而得以快速开发的集成电路。 本书介绍的 S3C2410/S3C2440 就属于 SoC,比如它们集成了处理器、内存管理单元(MMU)、 NAND Flash 控制器等部件,而处理器是基于 ARM 公司的 IP 设计的。 嵌入式软件随着硬件的发展,也发生了很大的变化。在 SCM、MCU 阶段,嵌入式软件的编 写通常由相关行业的电气、电子技术专家编写,计算机专业队伍并没有真正进入单片机应用 领域。因此,电子技术应用工程师以自己习惯性的电子技术应用模式,从事单片机的应用开 发。这种应用模式最重要的特点是:软、硬件的底层性和随意性;对象系统专业技术的密切 相关性;缺少计算机工程设计方法。 随着嵌入式处理器性能的快速提高,网络、通信、多媒体技术得以发展,很多嵌入式设 备都具备收发邮件、编写文档、视听等功能,计算机专业人士开始进入嵌入式领域。这形成 了明显的技术特点:基于操作系统、以网络、通信为主的“非嵌入式底层”应用──除要完 成的功能比较特殊、性能比较苛刻外,嵌入式应用软件的开发已经与普通软件开发没有差别。 实际上,很多基于操作系统的嵌入式应用程序就是先在 PC 上模拟验证,最后才移入嵌入式设 备的。 以一个浅显的例子说明:以前基于单片机编写的软件,通常是在 main 函数中定义一个无 限循环,然后在里面查询各类输入事件,并作出相应处理,它直接操作硬件;而基于 SoC 的 软件多是在操作系统上面运行,通过驱动程序操作硬件,这使得软件开发以分工的形式进行, 术有专攻。 – 3 –
第 1 章 嵌入式 Linux 开发板选型 1.2 基于 ARM 处理器的嵌入式 Linux 系统 1.2.1 ARM 处理器介绍 1. ARM 的概念: 嵌入式处理器种类繁多,有 ARM、MIPS、PPC 等多种架构。ARM 处理器的文档非富,各类 嵌入式软件大多(往往首选)支持 ARM 处理器,使用 ARM 开发板来学习嵌入式开发是个好选择。 基于不同架构 CPU 的开发是相通的,掌握 ARM 架构之后,在使用其他 CPU 时也会很快上手。 当然,作为产品进行选材时,需要考量的因素就非常多了,这不在本书的介绍范围之内。 ARM(Advanced RISC Machine),既可以认为是一个公司的名字,也可以认为是对一类微 处理器的通称,还可以认为是一种技术的名字。ARM 公司是 32 位嵌入式 RISC 微处理器技术 的领导者,自从 1990 年创办公司以来,基于 ARM 技术 IP 核的微处理器的销售量已经超过了 100 亿。ARM 公司并不生产芯片,而是出售芯片技术授权。其合作公司针对不同需求搭配各类 硬件部件,比如 UART、SDI、I2C 等,设计出不同的 SoC 芯片。ARM 公司在技术上的开放性使 得它的合作伙伴既有世界顶级的半导体公司,也有各类中、小型公司。随着合作伙伴的增多, 也使得 ARM 处理器可以得到更多的第三方工具、制造和软件支持,又使整个系统成本降低, 使新品上市时间加快,从而具有更大的竞争优势。 基于 ARM 的处理器以其高速度、低功耗、价格低等优点而得到非常广泛的应用,它可以 应用于以下领域: ① 为无级通信、消费电子、成像设备等产品,提供可运行复杂操作系统的开放应用平台; ② 在海量存储、汽车电子、工业控制和网络应用等领域,提供实时嵌入式应用; ③ 安全系统,比如信用卡、SIM 卡等。 2. ARM 体系架构的版本: ARM 体系架构的版本就是它所使用的指令集的版本。ARM 架构支持 32 位的 ARM 指令集和 16 位的 Thumb 指令集,后者使得代码的存储空间大减小。还提供了一些扩展功能,比如 Java 加速器(Jazelle)、用以提高安全性能的 TrustZone 技术、智能能源管理(IEM,Intelligent Energy Manager)、SIMD 和 NEONTM 等技术。 还在使用的 ARM 指令集(ISA,Instruction Set Architecture)有以下版本: (1)ARMv4。 这是当今市场上最老的版本,所有之前的些已经废弃。ARMv4 只支持 32 位的指令集,支 持 32 位的地址空间。一些 ARM7 系列的处理器和 Intel 公司的 StrongARM 处理采用 ARMv4 指 令集。 (2)ARMv4。 增加了 16 位的 Thumb 指令集,它可以产生更紧凑的代码,与相同功能的 ARM 代码相比, 可以节省超过 35%的存储空间,同时具备 32 位代码的所有优点。 – 4 –
第 1 章 嵌入式 Linux 开发板选型 (3)ARMv5TE。 在 1999 年,ARMv5TE 版本改进了 Thumb 指令集:增加了一些“增强型 DSP 指令”,简称 为 E 指令集。 这些指令用于增强处理器对一些典型的 DSP 算法的处理性能,使得音频 DSP 应用可以提 升 70%的性能。许多系统在使用微控制器来进行各类控制的同时,还需要具备数据处理能力, 传统的做法要么是使用更高级的处理器(这使得成本增加),要么是使用多个处理器(这使得系 统复杂度增高)。通过 E 指令集可以在一个普通 CPU 中增加 DSP 的功能,这在成本、性能、简 化设计等方面都有优势。 (4)ARMv5TEJ。 在 2000 年,ARMv5TEJ 版本中增加了 Jazelle 技术用于提供 Java 加速功能。相比于仅用 软件实现的 Java 虚拟机,Jazelle 技术使得 Java 代码的运行速度提高 8 位,而功耗降低 80%。 Jazelle 技术使得可以在一个单后的处理器上运行 Java 程序、已经建立好的操作系统和 应用程序。 (5)ARMv6。 在 2001 年,ARMv6 问世。它在很多方面都有改进:存储系统、异常处理,最重要的是增 加了对多媒体功能的支持。ARMv6 中包含了一些媒体指令以支持 SIMD 媒体功能扩展。SIMD 媒体功能扩展为音频/视频的处理提供了优化功能,可以使音频/视频的处理性能提高 4 倍。 ARMv6 中,还引入了 Thumb-2 和 TrustZone 技术,这是两个可选的技术。之前的版本中, ARM 指令和 Thumb 指令分别运行于不同的处理器状态,执行不同指令集的指令前要进行切换。 Thumb-2 技术增加了混合模式的功能,定义了一个新的 32 位指令集,使得可以运行 32 位指 令与传统 16 位指令的混合代码。这能够提供“ARM 指令级别的性能”与“Thumb 指令级别的 代码密度”。TrustZone 技术在硬件上提供了两个隔离的地址空间:安全域(secure world)和 非安全域(non-secure world),给系统提供了一个安全机制。 (6)ARMv。 ARMv7 架构使用 Thumb-2 技术,还使用了 NEON 技术,将 DSP 和媒体处理能力提高了近 4 倍,并支持改良的浮点运算,满足下一代 3D 图形、游戏物理应用以及传统嵌入式控制应用的需 求。 可以总结:版本名中的 T 表示 Thumb 指令集,E 表示增强型 DSP 指令,J 表示 Java 加速 器。 3. ARM 处理器系列: 在相同指令集下,搭配不同部件就可以组装出具有不同功能的处理器,比如有无内存管 理单元、有无调试功能等等。它们可以分为 8 个系列,系列名中的后缀含义如下: ① T:表示支持 Thumb 指令集 ② D:表示支持片上调试(Debug) – 5 –
第 1 章 嵌入式 Linux 开发板选型 ③ M:表示内嵌硬件乘法器(Multiplier) ④ I:支持片上断点和调试点 ⑤ E:表示支持增强型 DSP 功能 ⑥ J:表示支持 Jazelle 技术,即 Java 加速器 ⑦ S:表示全合成式(full synthesizable) 这 8 个系列中,ARM7、ARM9、ARM9E 和 ARM10 为 4 个通用处理器系列,每一个系列提供 一套相对独特的性能来满足不同应用领域的需求。SecurCore 系列专门为安全要求较高的应 用而设计。 下 面 简 要 说 明 它 们 的 特 点 如 下 , 要 了 解 更 详 细 的 信 息 请 参 考 ARM 公 司 的 网 站 (http://www.arm.com)。 (1)ARM7。 ARM7 系列处理器是低功耗的 32 位 RISC 微处理器,它主要用于对成本、功耗特别敏感的 产品。最高主频可以达到 130MIPS,支持 Thumb 16 位指令集和 ARM 32 位指令集。 ARM7 系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ-S。 其中,ARM7TMDI 是目前使用最广泛的 32 位嵌入式 RISC 处理器,属低端 ARM 处理器核。 ARM7 系列的处理器没有内存管理单元(MMU)。 (2)ARM9。 与 ARM7 相比,ARM9 的最大差别在于:有 MMU 和 CACHE。它的指令执行效率较 ARM7 有较 大提高,最高主频可达到 300MIPS。 ARM7 系列微处理器有 ARM920T 和 ARM922T 两种类型。 (3)ARM9E。 ARM9E 系列微处理器在单一的处理器内核上提供了微控制器、DSP、Java 应用系统的解决 方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E 系列微处理器提供了增强的 DSP 处理能力,很适合于那些需要同时使用 DSP 和微控制器的应用场合。 它有 ARM926EJ-S、ARM946E-S、ARM966E-S、ARM968E-S 和 ARM996HS 共 5 种类型。 (4)ARM10E。 ARM10E 系列微处理器具有更加杰出的高性能、低功耗两个特点;由于使用了新的体系结 构,它拥有所有 ARM 系列中最高的主频。ARM10E 系列微处理器采用了一种新的省电模式,支 持“64-bit load-store micro-architecture”,含有浮点运算协处理器(符合 IEEE754 标准, 支持向量运算)。 它有 ARM1020E、ARM1022E 和 ARM1026EJ-S 共 3 种类型。 (5)ARM11。 ARM11 系列微处理器是 ARM 公司近年推出的新一代 RISC 处理器,它是 ARM 新指令架构 ——ARMv6 的第一代设计实现。ARM11 的媒体处理能力和低功耗特点,特别适用于无线和消费 类电子产品;其高数据吞吐量和高性能的结合非常适合网络处理应用;另外,也在实时性能 – 6 –
第 1 章 嵌入式 Linux 开发板选型 和浮点处理等方面 ARM11 可以满足汽车电子应用的需求。可以预言,基于 AMRv6 体系结构的 ARM11 系列处理器将在上述领域发挥巨大的作用。 它有这 4 种类型:ARM11 MPCore,ARM1136J(F)-S,ARM1156T2(F)-S 和 ARM1176JZ(F)-S。 (6)Cortex。 Cortex 系列处理器是基于 ARMv7 架构的,分为 Cortex-A、Cortex-R 和 Cortex-M 三类。 Cortex-A 为传统的、基于虚拟存储的操作系统和应用程序而设计,支持 ARM、Thumb 和 Thumb-2 指令集;Cortex-R 针对实时系统设计,支持 ARM、Thumb 和 Thumb-2 指令集;Cortex-M 为对 价格敏感的产品设计,只支持 Thumb-2 指令集。 (7)SecurCore。 SecurCore 系列微处理器专为安全需要而设计,提供了完善的 32 位 RISC 技术的安全解 决方案,因此,SecurCore 系列微处理器除了具有 ARM 体系结构的低功耗、高性能的特点外, 还具有其独特的优势,即提供了对安全解决方案的支持。 SecurCore 系列微处理器有如下类型:SecurCoreSC100、SecurCore SC200。 (8)OptimoDE Data Engines。 这是一个新的 IP 核,针对高性能的嵌入式信号处理应用而设计。 另外,Intel 公司的 StrongARM、Xscale 系列处理器也属于 ARM 架构。IntelStrongARM 处理器是便携式通讯产品和消费类电子产品的理想选择,已成功应用于多家公司的掌上电脑 系列产品。Xscale 处理器是基于 ARMv5TE 体系结构的解决方案,是一款全性能、高性价比、 低功耗的处理器。它支持 16 位的 Thumb 指令和 DSP 指令集,已使用在数字移动电话、个人数 字助理和网络产品等场合。Xscale 处理器也是 Intel 目前主要推广的一款 ARM 微处理器。 1.2.2 在嵌入式系统中选择 Linux 的理由 随着技术的发展及人们需求的增加,各种消费类电子产品的功能越来越强大,使得随身 携带的电子设备变得“等同于 PC”:上面有键盘、触摸屏、LCD 等输入输出设备,可以观看视 频、听音乐,可以浏览网站、接收邮件、可以查看、编辑文档等。在工业控制领域,系统级 芯片(SoC)以更低廉的价格提供了更丰富的功能,使得可以在一个嵌入式系统中同时完成更多 的控制功能。 当系统越来越大,应用越来越多,使用操作系统就成为一个值得考虑的选择。操作系统 的作用有:统一管理系统资源,为用户提供访问硬件的接口,调度多个应用程序,管理文件 系统,等等。在嵌入式领域可以选择的操作系统有很多,比如:Linux、VxWorks、Windows CE、 uC/OS-II 等。 VxWorks 是美国 WindRiver 公司开发的嵌入式实时操作系统。单就性能而言,它是非常 优秀的操作系统:具有可裁剪的微内核结构,高效的任务管理,灵活的任务间通讯,微秒级 – 7 –
分享到:
收藏