OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » ARM简介及编程

共3条 1/1 1 跳转至

ARM简介及编程

院士
2002-07-24 18:21:00    评分
1.ARM简介   ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的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联合研制,后来授权给Intel。SA110处理器、SA1100 PDA系统芯片和SA1500多媒体处理器芯片均采用了这一技术。   --ARM7500和ARM7500FE:高度集成的单芯片RISC计算机,基于一个缓存式ARM7 32位内核,拥有内存和I/O控制器、3个DMA通道、片上视频控制器和调色板以及立体声端口;ARM7500FE则增加了一个浮点运算单元以及对EDO DRAM的支持。特别适合电视顶置盒和网络计算机(NC)。 Windows CE的Pocket PC只支持ARMWindows CE可支持多种嵌入式处理器,但基于Windows CE的Pocket PC则只支持ARM一种。微软在对SH3、MIPS、ARM等嵌入式处理器做了评估后认为,ARM是一种性价比较好的选择。由于目前ARM在手持设备市场占有90%以上的份额,只支持ARM,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。由于ARM开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。   调试工具及调试方法 ARM Project Manager (APM) include ARM Debuger 通过计算机串口与处理器UART相连,设置计算机的超级终端(Hyper Terminal), 通过超级终端察看硬件情况(寄存器设置,数据等)和程序运行情况,当然程序重要加入向UART送出数据的指令,用Beep报警也是经常用的.这种调试方法是用于底层调试硬件,找出硬件存在的问题. VxWorks 在Shell 不能正常运行前,也是采取这种方法来调试程序,不过一般不是硬件问题,而是BSP中存在的问题,需要根据硬件,修改BSP.   ARM7 编程经验及程序示例 1.VxWorks image 装入ARM的过程: ARM7内部有128byte的BootROM和2K的SRAM,当需要Download VxWorks image时,ARM启动采用Boot方式启动运行存在BootROM中的程序初始化ARM内部的COM口,从COM口接受数据到2K的SRAM,这2K程序是用来真正Load VxWorks的,2K程序Load完毕后系统自动跳转到这2K程序执行,它的作用是再次初始化内部的COM口,通过COM口接受VxWorks到DRAM,然后由DRAM写入FLASH。 写入完毕后,切换到Normal模式重新启动系统,系统自动跳到FLASH 0X00000000开始运行VXWORKS。 用PC机上的COM1与ARM内部的UART1(COM)通信来Download VxWorks。 2. 主要管脚定义 32条数据线: D0-------D31 28条地址线: A0-------A27 little endian 定义, 相对应数据排列 0 1 2 3 4 5 6--------27 6条片选信号脚: CS0-------CS5, 其实作用相当于地址线 A28------A31 4个8位的PORT口: PORT A, PORT B , PORT D主要用于外围芯片信号的控制. PORT E有双作用. 例如 PORT A 控制键盘的行信号, PORT B 用于RS232, PORT D 用于控制MODEM, FPGA.. 外部中断信号EINT, EXTFIQ. 编程时要根据主板原理图和硬件手册进行. a. 看硬件图纸, 该芯片和CPU的那些管脚连结. 特别是 PORT 口和片选线. b. 查CPU手册, 得到PORT 口和该片选的硬件地址. c. 编程: 用PORT口直接对芯片操作,如开,关,RESET等, 用片选地址和芯片内地址结合对该外围芯片操作.   3. Exception vectors, 中断向量表 Vector Address Exception Exception Mode Priority(1=High) 0x0 Reset Svc 1 0x4 Undefined Instruction Undef 6 0x8 Software Interrupt Svc 6 0xC Prefetch Abort Abort 5 0x10 Data Abort Abort 2 0x14 Reserved Not applicable Not applicable 0x18 Interrupt (IRQ) irq 4 0x1C Fast Interrupt (FIQ) Fiq 3   这个向量表必须要放置在系统地址0x00000000 (一般是逻辑地址, 即经过MMU映射后的地址)处. 一般是在这些地址上放跳转指令 BL, 跳到相应的地址空间执行相应的程序. 如系统执行从0x00000000 Reset开始, Reset 跳转到某一地址开始运行操作系统.   程序示例(ARM asm): __VectorStart ; Start of ARM processor vectors LDR pc,ResetV ; 00 - Reset LDR pc,UndefV ; 04 - Undefined instructions LDR pc,SWIV ; 08 - SWI instructions LDR pc,PAbortV ; 0C - Instruction fetch aborts LDR pc,DAbortV ; 10 - Data access aborts LDR pc,UnusedV ; 14 - Reserved (was address exception) LDR pc,IRQV ; 18 - IRQ interrupts LDR pc,FIQV ; 1C - FIQ interrupts   4. 中断号分配 (FIQ, IRQ) Interrupt 中断号 Name Comment FIQ 0 外部中断 EXTFIQ 管脚 NEXT FIQ … … … … IRQ 5 外部中断 EINT1 管脚 NEINT1 IRQ 6 外部中断 EINT2 管脚 NEINT2 IRQ 7 外部中断 EINT3 管脚 NEINT3 … … … … IRQ 12 内部中断 UTXINT1 UART1 TX FIFO 为空 … … … …   中断号也是寄存器INTMR和INTSR的位,所以在ARM中中断的编程要点是 a. 看硬件图纸, 该外设和CPU的那一个管脚连结. b. 查CPU手册, 得到中断号及INTMR,INTSR的地址. c. 编程 注: 如果不是写底层driver, 只是在系统上层编程(如VxWorks, Linux) 知道中断号即可. 程序示例(VxWorks): //登记中断号5,和相应的中断例程ISR intConnect((VOIDFUNCPTR *)5,ComISR,0); //使能这中断 intEnable((VOIDFUNCPTR *)5); …… 5. 物理地址映射 重点在于片选地址CS的选取,另外MMU映射需要参考这个物理地址 [em27]



关键词: 简介     编程     系统     调试     程序     地址     中断    

院士
2002-08-06 22:19:00    评分
2楼
应该的。

院士
2002-08-13 21:25:00    评分
3楼
值得商榷

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]