arm嵌入式学习——学习总结_第1页
arm嵌入式学习——学习总结_第2页
arm嵌入式学习——学习总结_第3页
arm嵌入式学习——学习总结_第4页
arm嵌入式学习——学习总结_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM嵌入式学习笔记ARM嵌入式学习笔记11.嵌入式系统概述31.1.定义及特点31.2.嵌入式系统的发展31.3.未来嵌入式系统的发展方向31.4.典型的嵌入式系统的组成42.嵌入式软硬件系统42.1.电路的基本知识42.2.数制转换42.3.计算机组成原理42.4.嵌入式软件52.5.计算机编程语言52.6.数据结构52.7.操作系统52.7.1.操作系统的设计思路52.7.2.操作系统的分类53.ARM处理器63.1.微处理器和微控制器63.2.ARM处理器介绍63.2.1.ARM渗透到了许多应用领域63.2.2.ARM具有的优点63.2.3.ARM指令集63.3.ARM的结构73.3.

2、1.ARM体系结构的命名73.3.2.处理器工作模式83.3.3.存储系统83.3.4.寻址方式84.嵌入式Linux81.嵌入式系统概述1.1.定义及特点嵌入式系统是一种为特定设备服务,软硬件可裁剪的计算机系统,其英文名称是Embedded System。特点是形式变化多样、体积小,可以灵活地适应各种设备的需求。嵌入式系统的一些例子:手机、汽车、ATM等等。1.2.嵌入式系统的发展电子计算机诞生以来,计算机的发展有两个方向:一个方向是体积大型化、处理能力超强的大型计算机;另一个是向体积小型化,功能多样化的方向发展。l 嵌入式微控制器即传统意义上的单片机,是目前嵌入式系统的前身。一般都是8位或

3、者16位。l 嵌入式微处理器单片机的发展时间较早,处理能力很低,只能应用在一些相对简单的控制领域。嵌入式微处理器是近几年随着大规模集成电路发展同步发展起来的。与单片机相比,嵌入式微处理器的处理能力更强,主流的嵌入式微处理器都是32位的。嵌入式微处理器在一个芯片上集成了复杂的功能,有的还把常见的外部设备控制器也集成到芯片内部。图1.嵌入式微处理器1.3.未来嵌入式系统的发展方向随着微电子技术的发展和电子制造工艺的进步,嵌入式系统硬件的体积会不断缩小,系统稳定性也在不断增强,可以把更多功能集成到一个芯片上;同时功耗方面也不断降低。随着网络的普及和IPv6技术的应用(注:IPv6技术主要解决了IPv

4、4的IP地址数目紧缺的现状),越来越多的嵌入式设备也会加入到网络中。1.4.典型的嵌入式系统的组成嵌入式系统包括硬件和软件。硬件包括了嵌入式微处理器和嵌入式微控制器以及一些外围元器件和外部设备;软件包括了嵌入式操作系统和应用软件。嵌入式系统硬件种类繁多,有许多硬件和软件的解决方案,不同嵌入式系统软硬件很难兼容,软件必须修改而硬件必须重新设计才能使用。图2.嵌入式系统2.嵌入式软硬件系统2.1.电路的基本知识处理模拟信号的电路称为模拟电路。模拟信号的特点是信号变化是连续的。评估一个模拟电路常见的参数有放大率、信噪比和工作频率等。模拟电路是数字电路的基础。数字电路就是处理数字信号的电路。通常数字电

5、路具有逻辑运算和逻辑处理的功能。数字电路可以分为脉冲电路和逻辑电路两部分,脉冲电路负责对信号进行变换和测量;逻辑电路负责处理数字逻辑。2.2.数制转换2.3.计算机组成原理计算机系统硬件是由中央处理器、存储系统、总线系统和输入输出系统几个基本部分组成的。从存储结构来讲可以把计算机体系分成冯诺依曼结构和哈佛结构。总线一般分为数据总线、地址总线和控制总线。总线系统是由总线和相应的控制器构成的,如嵌入式系统常见的I²C总线和SPI总线,它们控制简单,成本低廉。还有PCI总线,支持复杂的功能和很高的系统吞吐量。输入输出系统由外部设备和输入输出控制器组成。CPU通过总线与输入输出系统相连。由于

6、外部设备的速度差异,CPU使用不同的方式控制外部设备的访问。常见的有轮询方式、中断控制方式和DMA方式。2.4.嵌入式软件软件分为系统软件和应用软件,最近兴起了介于两者之间的中间件软件。系统软件为使用计算机提供基本的功能,例如操作系统和数据库系统,它们都不是针对于某种特殊需求,而是面向通用的领域。软件的一个组成部分是文档,文档分为开发文档和用户文档,前者面向开发人员,后者面向最终用户。软件开发的流程大概分为四个部分:需求分析、设计、编码调试、测试和维护。软件开发的模型一般有瀑布模型、迭代模型以及它们的混合。2.5.计算机编程语言2.6.数据结构2.7.操作系统操作系统是一类特殊的系统软件,管理

7、整个系统的硬件资源和软件,它屏蔽了底层硬件的差异,向应用层提供了一个统一的接口。按照软件结构来划分,操作系统可以分为内核、驱动程序和程序库。内核是操作系统的核心,也是整个系统软件的核心。系统是和驱动程序打交道而不会直接访问硬件,硬件的具体细节由驱动程序完成。2.7.1.操作系统的设计思路l 微内核把系统的服务功能和基本操作分开。这样的方法使内核的设计更加简单,内核可以根据需要启动或者关闭服务,极大地提高了整个系统的工作效率。Linux和WinNT都采用这种思想。2.7.2.操作系统的分类l 分时系统l 实时系统3.ARM处理器3.1.微处理器和微控制器微处理器可以根据应用领域大致分为通用微处理

8、器、嵌入式微处理器和微控制器。通用微处理器主要用于高性能计算;嵌入式微处理器是针对于某一特定应用的高能力计算。微控制器主要用于控制某种设备。微控制器除了针对专门的设备之外,还具备微处理器不具备的特点。如很好的环境适应性,可以在特殊的高温或者低温环境工作。3.2.ARM处理器介绍ARM:Advanced RISC Machines的缩写,中文译名为高性能RISC机器。ARM是由ARM公司设计的一种体系结构,主要用于出售技术授权,并不生产芯片。3.2.1.ARM渗透到了许多应用领域l 工业控制l 无线通信l 网络应用l 消费电子产品3.2.2.ARM具有的优点l 芯片体积小,功耗低,制造成本低,性

9、能优异l 支持Thumb(16位)和ARM(32位)两种指令集,8位和16位设备兼容性好l 采用RISC,在内部使用大量的寄存器,执行指令速度快l 大部分指令都是操作寄存器,很少指令会访问外存l 采用多级流水线,处理速度更快l 支持多种寻址方式,数据存取方式灵活l 指令长度固定,便于编译器操作以及执行指令3.2.3.ARM指令集指令集可以分为CISC和RISC。ARM采用RISC指令集,指令长度固定,支持ARM指令集和Thumb指令集。ARM指令集按照功能可以分为算数运算指令、逻辑运算指令、分支指令、软件中断指令和程序数据装载指令等。3.2.3.1.指令格式<opcode> <

10、;cond> S <Rd>,<Rn> ,<operand2>其中,opcode:指令助记符;cond:执行条件;S:是否影响CPSR寄存器的值 Rd:目标寄存器;Rn:第一个操作数的寄存器;operand2:第二个操作数灵活使用第二个操作数能够提高代码的效率。它可以有如下的形式:u #immed_8r常数表达式8位的常数u Rm寄存器方式操作数为寄存器的数值u Rm,shift寄存器移位方式cond:条件码,如果不指定,则该指令为无条件执行(AL)l 算数运算指令ADD指令ADC指令SUB指令SBC指令l 逻辑运算指令AND指令EOR指令MOV指令l

11、分支指令B指令:B条件 <地址>带链接的分支指令BL:BL label适用于子程序调用,LRßPC-4,PCßlabel带状态切换的分支指令BX:根据跳转地址的低位进行来切换处理器状态。l 协处理器指令l 杂项指令l 伪指令ADR指令:将地址加载进寄存器,在实际编译时,采用一条ADD或者SUB指令代替ADRL指令:将地址加载进寄存器,在实际编译时,采用两条指令代替。LDR指令:加载32位的立即数或者一个地址值到指定寄存器。若加载的常数没有超过MOV或者MVN的范围,则使用MOV或者MVN指令代替该LDR伪指令,否则汇编则常量放入文字池,并使用一条程序相对偏移的L

12、DR指令从文字池读取常量。NOP指令空操作,用于延时操作。l 数据传送指令单一数据传送指令多数据传送指令寄存器交换指令3.2.4.Thumb指令集具有16位的代码密度,是ARM指令压缩的子集。3.2.4.1.Thumb指令集与ARM指令集的区别3.2.4.2.Thumb存储器访问指令3.3.ARM的结构3.3.1.ARM体系结构的命名ARM体系结构的命名可以分为两部分,一部分是ARM体系版本的命名,另一部分是ARM体系版本的处理器命名。ARM体系到现在一共发布了9个系列的版本,每个版本都可以支持不同的指令集和特殊功能。ARMv(版本号)x1(指令集)x2(指令集)指令集缩写含义TThumb指令

13、集M长乘法指令集E增强DSP指令集J支持Java加速器SIMD多媒体功能扩展指令集确定了一种ARM体系结构后,可以形成一系列处理器,处理器的命名主要是功能上的一些细小差别,基本的核心是相同的ARMxyzm功能缩写含义T支持ThumbD支持偏上调试M支持快速乘法器I支持嵌入式ICE调试E支持增强DSP指令J支持Java程序加速F支持浮点运算单元-S综合版本,支持所有功能3.3.2.处理器工作模式ARM微处理器可以在工作中随时切换状态,切换工作状态不会影响工作模式和寄存器的内容。ARM体系要求处理器在启动时应该处于ARM状态。ARM处理器使用操作寄存器的0位表示工作状态,取值为0时表示ARM状态,

14、取值为1时表示Thumb状态。使用BX指令可以切换状态。ARM处理器支持7种工作模式。ARM处理器大多都是用来处理外部中断和异常的,只是针对于异常和中断的分类比较详细。3.3.3.存储系统嵌入式微处理器大多采用一种线性的存储管理模式,ARM也是如此。内存中的存储器和外部设备都被安排到一个统一的地址空间。线性地址空间便于处理器核管理用户操作。在操作超过8位的数据时,存在两种不同的访问方法:大字端模式和小字端模式。l 大字端字节n字节n+1字节n+2字节n+33124231615870l 小字端字节n+3字节n+2字节n+1字节n31242316158703.3.4.寻址方式寻址方式是指根据指令中

15、给出的地址码字段来实现寻找真实操作数地址的方式ARM包括7种常见的寻址方式u 立即寻址u 寄存器寻址u 寄存器移位寻址u 寄存器间接寻址u 基址寻址u 多寄存器寻址u 栈寻址:递增堆栈(向上增长)与递减堆栈(向下增长);满堆栈(SP指向的是数据)与空堆栈(SP指向的是空位置)。故有四类栈寻址指令。还有两种不常见的寻址方式:u 多寄存器寻址u 块拷贝寻址4.嵌入式Linux5.开发学习5.1.ARM9中断实验5.1.1.原理S3C2410A具有众多的中断源,可以通过设置INTMOD寄存器将他们分为IRQ中断和FIQ中断,一般只设置一个中断源为FIQ中断。对于多个中断源,可以通过PRIORITY寄存器设置中断的优先级,使用默认优先级0即可。INTMSK可以使某个中断源的中断允许,有些中断源还需要设置SUBMASK寄存器使能。EINT4EINT23所在的中断控制器不是独立的中断源(EINT4EINT7共用一个中断源,EINT8EINT23共用另外一个中断源),还需要设置EINTMASK寄

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论