ARM开发入门初级教程.ppt_第1页
ARM开发入门初级教程.ppt_第2页
ARM开发入门初级教程.ppt_第3页
ARM开发入门初级教程.ppt_第4页
ARM开发入门初级教程.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 熟悉ARM处理器,硅谷芯微 技术贡献,网址:www.threeway.cc,本章帮助学习者对ARM处理器有个宏观上的理解,并以韩国三星公司S3C2440芯片为例对其内部资源进行简单介绍。,第1章 目录,1. 为什么用ARM? 2. ARM公司简介 3. ARM微处理器系列 4. ARM微处理器的结构 5.ARM微处理器的选择 6.我们所使用的微处理器芯片 S3C2440 7. 课后练习,1.1 为什么用ARM?,嵌入式系统是当前最热门最有发展前途的IT应用领域之一。随着需求的增加,在嵌入式领域,8位处理器已经不能胜任一些复杂的应用,例如GUI,TCP/IP,FILESYSTEM等,而A

2、RM芯片凭借强大的处理能力和极低的功耗,非常适合这些场合。所以现在越来越多的公司在产品选型的时候考虑到使用ARM处理器。另外,随着ARM功能的增强和完善,某些方面可以取代原先X86架构的单板机,特别是工控领域。基于以上两个原因,学习和使用ARM在中国变得非常流行。,1.2 ARM公司简介,ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM处理器,已遍及工业控制、消费类

3、电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75%以上的市场份额,ARM技术正在逐步渗入到日常生活的各个方面。,ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产品供应商,其本身不直接从事芯片生产,而是转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,然后根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又

4、使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具竞争力。,1.3 ARM微处理器系列,ARM公司设计了许多处理器,它们可以根据使用内核的不同划分到各个系列中。系列划分是基于ARM7、ARM9、ARM10、ARM11内核的。后缀数字7、9、10、11表示不同的内核设计。数字升序说明性能和复杂度的提高。ARM8开发出来以后很快就被取代了。 在每个系列中,存储器管理、cache和TCM处理器扩展也有多种变化。ARM继续在可用的产品系列和每个系列内部的不同变种两方面做进一步开发。,1.3.1 ARM7处理器(1),ARM7内核是冯诺依曼体系结构,数据和指令使用同一条总线。内核有一条3级流水

5、线,执行ARMv4指令集。ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点: 具有嵌入式ICE-RT逻辑,调试开发方便; 极低的功耗,适合对功耗要求较高的应用,如便携 式产品; 能够提供0.9MIPS/MHz的三级流水线结构; 代码密度高并兼容16位Thumb指令集; 对操作系统的支持广泛,包括Windows CE、Linux 、Palm OS等; 指令系统与ARM9系列、ARM9E系列和ARM10E系 列兼容,便于用户的产品升级换代; 主频最高可达130MIPS,高速的运算处理能力能胜 任绝大多数的复杂应用。,1

6、.3.1 ARM7处理器(2),ARM7系列微处理器的主要应用领域为:工业控制、internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义如下: T:支持16位压缩指令集Thumb; D:支持片上Debug; M:内嵌硬件乘法器(Multiplier); I:嵌入式ICE,支持片上断点和调试点。,1.3.2 ARM9微处理器,ARM9系列微处理器在高性能和低

7、功耗方面提供最佳的性能。具有以下特点: 5级整数流水线,指令执行效率更高; 提供1.1MIPS/MHz的哈佛结构; 支持32位ARM指令集和16位Thumb指令集; 支持32位的告诉AMBA总线接口; 全性能的MMU,支持Winodws CE、Linux、Palm OS等多种主流嵌入式操作系统; MPU支持实时操作系统; 支持数据Cache和指令Cache,具有更高的指令和数 据处理能力。 ARM9系列微处理器重要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、PDA、网络电脑、智能电话、数字照相机和数字摄象机等。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三

8、种类型,以适合于不同的应用场合。,1.3.3 ARM10微处理器(1),ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%,同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗极低。ARM10E系列微处理器的主要特点如下: 支持DSP指令集,适合于需要高速数字信号处理的 场合; 6级整数流水线,指令执行效率更高; 支持32位ARM指令集和16位Thumb指令集; 支持32位的高速AMBA总线接口; 支持VFP10浮点处理协处理器; 全性能的MMU,支持Winodws CE、Linux、Palm

9、 OS等多种主流嵌入式操作系统; 支持数据Cache和指令Cache,具有更高的指令和数 据处理能力。,1.3.3 ARM10微处理器(2), 主频最高可达400MIPS; 内嵌并行读/写操作部件。 ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制通信和信息系统等领域。该系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型,以适用于不同的应用场合。,1.3.4 ARM11微处理器,ARM1136J-S发布于2003年,是针对高性能和高能效应用而设计的。ARM1136J-S是第一个执行ARMv6架构指令的处理器。它集成了一条独立的lo

10、ad-sotore和算术流水线的8级流水线。ARMv6指令包含了针对媒体处理的单指令流多数据流(SIMD)扩展,采用特殊的设计,以改善视频处理性能。ARM1136-J-S为了进行快速浮点运算,增加了向量浮点单元。,1.4 ARM微处理器的结构,了解一款CPU,首先要了解它的体系结构寄存器结构和指令结构三个方面。只有对这三个方面了解彻底,才能将这款CPU和其他不同类型的CPU区分开来,才能真正地利用这款CPU进行开发工作。,1.4.1 体系结构(1),传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)结构有其固有的缺点,即随着计算机技术的发展而不

11、断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%,而余下的80%的指令却不经常使用,在程序设计中只占20%,显然,这种结构不太合理。 基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC(Reduced Instruction Set Computer,精简指令集计算机)的概念,RISC并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理,以提高运算速度。RISC结构优先选取使用频率最高的简单指令,避免复杂指令;将指令长

12、度固定,,1.4.1 体系结构(2),指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。 到目前为止,RISC体系结构也还没有严格的定义,一般认为,RISC体系结构应具有如下特点: 采用固定长度的指令格式,指令归整、简单、基本 寻址方式有2-3种; 使用单周期指令,便于流水线操作执行; 大量使用寄存器,数据处理指令只对寄存器进行操 作,只有加载/存储指令可以访问存储器,以提高 指令的执行效率。 除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片面积,并降低功耗。这些技术包括:,1.4.1 体系结构(3), 所有的指令都可以根据前面

13、的执行结构决定是否被 执行,从而提高智力功能的执行效率; 可用加载/存储指令批量传输数据,以提高数据的传 输效率; 可在一条数据处理指令中同时完成逻辑处理和移位 处理; 在循环处理中使用地址的自动增减来提高运行效率 。 当然,和CISC架构相比,尽管RISC架构有上述的优点,但决不能认为RISC架构就可以取代CISC架构,事实上,RISC和CISC各有优势,而且界限并不那么明显。现代的CPU往往采用CISC的外围,内部加入了RISC的特性,如超长指令集CPU就是融合了RISC和CISC的优势,成为未来的CPU发展方向之一。,1.4.2 寄存器结构,ARM处理器共有37个寄存器,被分成若干个组(

14、BANK),这些寄存器包括: 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器; 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。 同时,ARM处理器又有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0R14)、12个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是不同的处理器模式下有不同的物理寄存器。,1.4.3 指令结构,ARM微处理器在较新的体系结构中支持两种指令集,分别是ARM

15、指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%40%以上的存储空间,同时具备32位代码的所有优点。,1.5 ARM微处理器的选择,鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用。但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难,所以,对ARM芯片做一些对比研究十分重要。下面就从应用的角度出发,对在选择ARM微处理器时所应考虑的主

16、要问题做一些简单的介绍。,1.5.1 内核的选择,通过前面介绍的内容可知,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已经

17、成功移植到多种不带MMU的微处理器平台上,并在稳定性和其他方面都有上佳表现。,1.5.2 工作频率的选择,系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz。常见的ARM7芯片系统主时钟为20MHz133MHz,ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz233MHz,ARM10最高可以达到700MHz。不同的芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。,1.5

18、.3 芯片内存储器的选择,大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器,但也有部分芯片具有相对较大的片内存储空间,如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间,用户在设计时可考虑选用这种类型,以简化系统的设计。,1.5.4 片内外围电路的选择,除ARM微处理器核以外,几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,通常称之为片内外围电路,如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等,设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样即可简化

19、系统的设计,同时也可提高系统的可靠性。,1.6我们所使用的微处理器芯片S3C2440,S3C2440是韩国三星公司生产的,基于ARM920T的16/32位RISC嵌入式处理器,是目前市场上应用非常广泛的一款嵌入式处理器。该处理器是一个多用途的通用芯片,它内部集成了微处理器和常用外围组件,具有较高的性价比。,1.6.1 主要结构,S3C2440的频率是400MHz,其ARM920T核由ARM9TDMI、存储管理单元(MMU)和高速缓存三部分组成。其中,MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。ARM920T有两个内部协处理器:CP14和CP15。CP1

20、4用于调试控制,CP15用于存储系统控制以及测试控制。,1.6.2 片内资源(1),S3C2440的片内资源非常丰富,主要包括: 1.2V内核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电,具备16KB的I-Cache和16KB的D-Cache/MMU微处理器; 外部存储控制器(SDRAM控制和片选逻辑); LCD控制器(最大支持4K色STN和256K色TFT)提 供1通道LCD专用DMA; 4通道DMA,并有外部请求引脚; 3通道UART(IrDA1.0,64字节Tx FIFO,和64字节Rx FIFO); 2通道SPI; 1通道IIC-BUS接口(多主支持); 1通道

21、IIS-BUS音频编解码接口; AC97解码器接口;,1.6.2 片内资源 (2), 兼容SD主接口协议1.0版和MMC卡协议2.11兼容版; 2端口USB主机/1端口USB设备(1.1版); 4通道PWM定时器和1通道内部定时器/看门狗定时器; 8通道10比特ADC和触摸屏接口; 具有日历功能的RTC; 相机接口(最大4096 x 4096像素的输入支持。2048 x2048像素输入时,支持缩放); 130个通用I/O口和24通道外部中断源; 具有普通,慢速,空闲和掉电模式; 具有PLL片上时钟发生器。,1.6.3 体系结构,S3C2440处理器为手持设备和通用嵌入式应用提供片上集成系统解决

22、方案,包括: 16/32位RISC体系结构和ARM920T内核强大的指令集; 加强的ARM体系结构MMU用于支持WinCE,EPOC 32和Linux; 指令高速存储缓存器(I-Cache),数据高速存储缓冲器(D-Cache),写缓冲器和物理地址TAG RAM减少主存带宽和响应性带来的影响; 采用ARM920T CPU内核支持ARM调试体系结构; 内部高级微控制总线(AMBA)体系结构(AMBA2.0,AHB/APB); 支持高速总线模式和异步总线模式,支持外部等待信号延长总线周期。,1.6.4 系统管理器(1),S3C2440的存储器控制器提供访问外部存储器所需要的存储器控制信号,主要具有

23、以下几个特性: 支持大/小端方式(通过软件选择); 支持高速总线模式和异步总线模式; 8个存储器bank,寻址空间:每个bank 128MB(总共1GB); 支持可编程的每bank 8/16/32位数据总线带宽; bank0bank6都采用固定的bank起始地址和大小,其中6个适用于ROM、SRAM,另外2个适用于ROM/SRAM和同步DRAM(即SDRAM),所有的存储器bank都具有可编程的操作周期; 支持外部等待信号延长总线周期; 支持掉电时的SDRAM自刷新模式;,1.6.4 系统管理器(2), 支持各种型号的ROM引导(NOR/NAND FLASH、EEPROM或其他),支持从NAN

24、D FLASH存储器启动,采用4KB内部缓冲器进行启动引导,支持启动之后NAND存储器仍然作为外部存储器使用。,1.6.5 Cache高速缓存, 64项全相连模式,采用I-Cache(16KB)和D-Cache(16KB); 每行8字长度,其中每行带有一个有效位和两个dirty位; 伪随机数或轮转循环替换算法位; 采用写穿式(write-through)或写回式(write-back)cache操作来更新主存储器; 写缓冲器可以保存16个字的数据和4个地址;,1.6.6 时钟和电源管理,S3C2440的时钟有以下几种模式: 片上MPLL和UPLL; 采用UPLL产生操作USB主机/设备的时钟;

25、 MPLL产生最大400MHz1.3V操作MCU所需要的时钟; 通过软件可以有选择性地为每个功能模块提供时钟; 电源模式:正常、慢速、空闲和掉电模式; 正常模式:正常运行模式; 慢速模式:不加PLL的低时钟频率模式; 空闲模式:只停止CPU的时钟; 掉电模式:所有外设和内核的电源都切断了; 可以通过EINT15:0或RTC报警中断来从掉电模式中唤醒处理器。,1.6.7 中断控制器, 60个中断源(1个看门狗定时器,5个定时器,9个UART,24个外部中断EINT,4个DMA,2个RTC,2个ADC,2个IIC,2个SPI,1个SDI,2个USB,1个LCD和1个电池故障,1个NAND和2个CA

26、MERA,1个AC97音频); 电平/边沿触发模式的外部中断源; 可编程的边沿/电平触发极性; 支持为紧急中断请求提供快速中断服务。,1.6.8 脉冲带宽调制定时器(PWM), 4通道16位具有PWM功能的定时器,1通道16位内部定时器,可基于DMA或中断方式工作; 可编程的占空比周期、频率和极性; 能产生死区; 支持外部时钟源。,1.6.9 实时时钟(RTC), 全面的时钟特性:秒、分、时、日期、星期、月和年; 32.768KHz工作; 具有报警中断; 具有节拍中断。,1.6.10 通用I/O端口,S3C2440有130个多功能输入/输出端口,24个外部中断端口,具体如下: 端口A(GPA)

27、:25个输入/输出端口; 端口B(GPB):11个输入/输出端口; 端口C(GPC):16个输入/输出端口; 端口D(GPD):16个输入/输出端口; 端口E(GPE):16个输入/输出端口; 端口F(GPF):8个输入/输出端口; 端口G(GPG):16个输入/输出端口; 端口H(GPH):9个输入/输出端口; 端口J(GPJ):13个输入/输出端口。,1.6.11 LCD控制器(1),S3C2440的LCD控制器主要完成这样的功能:将视频缓冲中的图像数据发送到外部的LCD中。 下面是STN屏幕支持的显示模式: 支持3种类型的STN LCD显示屏:4位双扫描、4位单扫描、8位单扫描显示类型;

28、 支持单色模式、4级、16级灰度STN LCD、256色和4096色STN LCD; 支持多种不同尺寸的液晶屏; LCD实际尺寸的典型值是:640 x 480,320 x 240,160 x 160等; 最大虚拟屏幕大小是4MB; 256色模式下支持的最大虚拟屏是:4096 x 1024,2048 x 2048,1024 x 4096等。 下面是TFT屏幕支持的显示模式:,1.6.11 LCD控制器 (2), 支持彩色TFT的1,2,4或8bbp(像素每位)调色显示; 支持16,24bbp无调色真彩显示TFT; 在24bbp模式下支持最大16M色TFT; 支持多种不同尺寸的液晶屏,典型尺寸是:

29、640 x 480,320 x 240,160 x 160等; 64K色彩模式下最大的虚拟屏尺寸为2048 x 1024。 LCD控制器有一个专用的DMA通道,用于获取系统内存的视频缓冲中的图像数据,然后发送到外部的LCD屏幕。LCD控制器有以下几个特点: 专用中断功能(INT_FrSyn和INT_FiCnt); 系统内存用做显示内存; 支持多种虚拟显示(支持硬件水平/垂直滚动); 可编程的时序控制以适应不同的显示面板; 支持小端和大端字节排列,也支持WinCE的数据格式。,1.6.12 UART控制器, 3通道UART,可以基于DMA模式或中断模式工作; 支持5位,6位,7位或者8位串行数据

30、发送/接收; 支持外部时钟作为UART的运行时钟(UEXTCLK); 可编程的波特率; 支持IrDA1.0; 具有测试用的还回模式; 每个通道都具有内部64字节的发送FIFO和64字节的接收FIFO。,1.6.13 A/D转换和触摸屏接口, 8通道多路复用ADC; 最大500KSPS/10位精度; 内部TFT直接触摸屏接口。,1.6.14 看门狗定时器, 16位看门狗定时器; 在定时器溢出时发生中断请求或系统复位。,1.6.15 IIC总线接口, 1通道多主IIC总线; 可进行串行,8位,双向数据传输,标准模式下数据传输速度可达100kbit/s,快速模式下可达到400kbit/s。,1.6.

31、16 IIS总线接口, 1通道音频IIS总线接口,可基于DMA方式工作; 串行,每通道8/16位数据传输; 发送和接收具备128字节(64字节加64字节)FIFO; 支持IIS格式和MSB-justified数据格式。,1.6.17 AC97音频解码器接口,AC97控制器和IIS控制器不能同时使用。S3C2440的AC97控制器有如下几个特点: 支持1个通道的立体声PCM输入,1个通道的立体声PCM输出和1个通道的MIC输入; 基于DMA和中断的工作模式; 所有的通道支持16位采样; 具有可变采样率的AC97编解码接口(48kHz以下); 每个通道都具有16位,16个输入FIFO; 只有主编解码支持。,1.6.18 USB设备控制器(1),S3C2440有两个USB主设备接口和1个USB从设备接口。 2个主设备接口的特点是: 兼容OHCI ver1.0规格; 兼容USB ver1.1; 两个下向流端口; 支持低速和全速USB设备。 1个USB从设备的特点是: 全速USB设备控制器兼容USB ver1.1规格; 支持控制、中

温馨提示

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

评论

0/150

提交评论