您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > ARM教程之ARM简介及编程
中国移动互联网研发培训专家教程简介(摘录)arm(AdvancedRISCMachines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,arm很快成为许多全球性RISC标准的缔造者。目前,总共有30家半导体公司与arm签订了硬件技术使用许可协议,其中包括Intel、IBM、LG半导体、NEC、SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI等一系列知名公司。arm架构是面向低预算市场设计的第一款RISC微处理器。2.产品介绍arm提供一系列内核、体系扩展、微处理器和系统芯片方案。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。典型的产品如下。①CPU内核--arm7:小型、快速、低能耗、集成式RISC内核,用于移动通信。--ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将arm7指令集同Thumb扩展组合在一起,以减少内存容量和系统成本。同时,它还利用嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。该产品的典型用途是数字蜂窝电话和硬盘驱动器。--ARM9TDMI:采用5阶段管道化ARM9内核,同时配备Thumb扩展、调试和Harvard总线。在生产工艺相同的情况下,性能可达arm7TDMI的两倍之多。常用于连网和顶置盒。②体系扩展--Thumb:以16位系统的成本,提供32位RISC性能,特别注意的是它所需的内存容量非常小。③嵌入式ICE调试由于集成了类似于ICE的CPU内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。④微处理器--ARM710系列,包括ARM710、ARM710T、ARM720T和arm740T:低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存管理、写缓冲和JTAG。广泛应用于手持式计算、数据通信和消费类多媒体。--arm940T、920T系列:低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。--Strongarm:性能很高、同时满足常规应用需要的一种微处理器技术,与DEC联合研制,中国移动互联网研发培训专家。SA110处理器、SA1100PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。--ARM7500和ARM7500FE:高度集成的单芯片RISC计算机,基于一个缓存式ARM732位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;arm7500FE则增加了一个浮点运算单元以及对EDODRAM的支持。特别适合电视顶置盒和网络计算机(NC)。WindowsCE的PocketPC只支持armWindowsCE可支持多种嵌入式处理器,但基于WindowsCE的PocketPC则只支持ARM一种。微软在对SH3、MIPS、ARM等嵌入式处理器做了评估后认为,ARM是一种性价比较好的选择。由于目前ARM在手持设备市场占有90%以上的份额,只支持ARM,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。由于arm开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。2.arm芯片CL-PS7111主要特点[BLOCKQUOTE][BLOCKQUOTE]电平2.7v/3.3v.相对应CPU工作频率13MHz/18MHz.13MHz位节电模式,性能相当于33MHzInter486PCarm710A内核arm7CPU8K4向缓存(cache)MMU带有64入口TLB(TransitionLook-asideBuffer)DRAM控制器支持16位和32位DRAMROM/SRAM/FlashMemory控制可译码4,5或6个独立的256M存储空间段每个存储段支持8位,16位和32位操作,并支持分页模式可编程ROM/SRAM/FlashMemory支持两个低功耗CL-PS6700PC卡(PCMCIA)控制器2K片内SRAM用于程序快速执行片内BootROM(128Byte)两个同步串行接口支持SPI,或Microwire2兼容音频解码器(AudioCodec)27位通用接口GPIO(general-purposeI/Oport)3个8位和1个3位GPIOport支持键盘阵列扫描(Scanningkeyboardmatrix)中国移动互联网研发培训专家波特率内有两个接收发送(TX,RX)16BytesFIFOs缓冲支持MODEM控制信号DC-to-DC转换器接口提供两个96KHz时钟输出,通过编程dutyratio(1/16---15/16)操作LCD控制器直接信号扫描板接口,单色LCD面板的大小可编程从16到1024个像素,16个像素为一个单位视频帧大小可编程到128Kbyte每个像素点的位数可编程1,2,4位计时器和实时时钟两个16位计时器(Timercounter)和一个32位实时时钟(RTC)[/BLOCKQUOTE][/BLOCKQUOTE]3.调试工具及调试方法[BLOCKQUOTE]ARMProjectManager(APM)includeARMDebuger:这个工具由ARM提供主要是开发程序,编程调试ARM芯片,有相当不错的开发环境和远端调试功能,支持汇编和C.它带有一个ARM自己的嵌入式操作系统armAngel,用户可以在它的上面开发自己的嵌入式软件,不过这个操作系统不是实时多任务的.[/BLOCKQUOTE][BLOCKQUOTE]通过计算机串口与处理器UART相连,设置计算机的超级终端(HyperTerminal),通过超级终端察看硬件情况(寄存器设置,数据等)和程序运行情况,当然程序重要加入向UART送出数据的指令,用Beep报警也是经常用的.这种调试方法是用于底层调试硬件,找出硬件存在的问题.VxWorks在Shell不能正常运行前,也是采取这种方法来调试程序,不过一般不是硬件问题,而是BSP中存在的问题,需要根据硬件,修改BSP.[/BLOCKQUOTE]4.arm7编程要点及示例ARM编程可参考程序示例arm_BootFlashROM驱动VxWorksimage装入arm的过程:[BLOCKQUOTE]arm7有两种运行模式,Boot模式和Normal模式,Boot模式主要是把程序装入(download或load)FlashROM中用的,Normal模式是一般运行程序用的.arm7Boot模式时,Flash的地址是0x70000000片选型号是CS0(Normal模式下,Flash地址为0x00000000)ARM7内部有128byte的BootROM和2K的SRAM,当需要DownloadVxWorksimage时,ARM中国移动互联网研发培训专家口,从COM口接受数据到2K的SRAM,这2K程序是用来真正LoadVxWorks的,2K程序Load完毕后系统自动跳转到这2K程序执行,它的作用是再次初始化内部的COM口,通过COM口接受VxWorks到DRAM,然后由DRAM写入FLASH。在主板2KSRAM运行的BootLoad程序执行过程,可参看程序示例中armBootLoad程序写入完毕后,切换到Normal模式重新启动系统,系统自动跳到FLASH0X00000000开始运行VXWORKS。用PC机上的COM1与arm内部的UART1(COM)通信来DownloadVxWorks。[/BLOCKQUOTE]主要管脚定义[BLOCKQUOTE]32条数据线:D0-------D3128条地址线:A0-------A27littleendian定义,相对应数据排列0123456--------276条片选信号脚:CS0-------CS5,其实作用相当于地址线A28------A314个8位的PORT口:PORTA,PORTB,PORTD主要用于外围芯片信号的控制.PORTE有双作用.例如PORTA控制键盘的行信号,PORTB用于RS232,PORTD用于控制MODEM,FPGA..外部中断信号EINT,EXTFIQ.编程时要根据主板原理图和硬件手册进行.[BLOCKQUOTE]看硬件图纸,该芯片和CPU的那些管脚连结.特别是PORT口和片选线.查CPU手册,得到PORT口和该片选的硬件地址.编程:用PORT口直接对芯片操作,如开,关,RESET等,用片选地址和芯片内地址结合对该外围芯片操作.[/BLOCKQUOTE][/BLOCKQUOTE]Exceptionvectors,中断向量表及中断分配Vector地址[BLOCKQUOTE]Exception[/BLOCKQUOTE]ExceptionModePriority(1=High)0x0[BLOCKQUOTE]Reset[/BLOCKQUOTE]Svc10x4[BLOCKQUOTE]UndefinedInstruction[/BLOCKQUOTE]Undef60x8[BLOCKQUOTE]SoftwareInterrupt[/BLOCKQUOTE]Svc60xC[BLOCKQUOTE]PrefetchAbort[/BLOCKQUOTE]Abort50x10[BLOCKQUOTE]DataAbort[/BLOCKQUOTE]Abort20x14[BLOCKQUOTE]中国移动互联网研发培训专家[/BLOCKQUOTE]NotapplicableNotapplicable0x18[BLOCKQUOTE]Interrupt(IRQ)[/BLOCKQUOTE]irq40x1C[BLOCKQUOTE]FastInterrupt(FIQ)[/BLOCKQUOTE]Fiq3[BLOCKQUOTE][/BLOCKQUOTE][BLOCKQUOTE]这个向量表必须要放置在系统地址0x00000000(一般是逻辑地址,即经过MMU映射后的地址)处.[/BLOCKQUOTE][BLOCKQUOTE]一般是在这些地址上放跳转指令BL,跳到相应的地址空间执行相应的程序.[/BLOCKQUOTE][BLOCKQUOTE]如系统执行从0x00000000Reset开始,Reset跳转到某一地址开始运行操作系统.[/BLOCKQUOTE][BLOCKQUOTE][/BLOCKQUOTE][BLOCKQUOTE]程序示例,中断向量表(armasm):__VectorStartStartofarmprocessorvectorsLDRpc,ResetV00-ResetLDRpc,UndefV04-UndefinedinstructionsLDRpc,SWIV08-SWIinstructionsLDRpc,PAbortV0C-InstructionfetchabortsLDRpc,DAbortV10-DataaccessabortsLDRpc,UnusedV14-Reserved(wasaddressexception)LDRpc,IRQV18-IRQinterruptsLDRpc,FIQV1C-FIQinte
本文标题:ARM教程之ARM简介及编程
链接地址:https://www.777doc.com/doc-2901830 .html