《ARM学习培训资料 .docx》由会员分享,可在线阅读,更多相关《ARM学习培训资料 .docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结ARM 简介及编程1. ARM 简介 摘录ARM( Advanced RISC Machines )是微处理器行业的一家知名企业, 设计了大量高性能、廉价、 耗能低的 RISC 处理器、 相关技术及软件。 技术具有性能高、 成本低和能耗省的特点。适用于多种领域,比如嵌入把握、消费 /训练类多媒体、 DSP 和移动式应用等。ARM 将其技术授权给世界上许多著名的半导体、软件和 OEM 厂商,每个厂商得到的都是一套独一无二的 ARM 相关技术及服务。利用这种合伙关系, ARM 很快成为许多全球性 RISC 标准的缔造者。目前, 总共有 30 家半导体公司与 ARM 签订了硬件技术使
2、用许可协议,其中包括 Intel 、IBM 、 LG 半导体、 NEC 、SONY 、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,就包括微软、升阳和MRI 等一系列知名公司。ARM 架构是面对低预算市场设计的第一款RISC 微处理器。2. 产品介绍ARM 供应一系列内核、体系扩展、微处理器和系统芯片方案。由于全部产品均接受一个通用的软件体系, 所以相同的软件可在全部产品中运行(理论上如此) 。典型的产品如下。 CPU 内核-ARM7 :小型、快速、低能耗、集成式RISC 内核,用于移动通信。- ARM7TDMIThumb:这是公司授权用户最多的一项产品,将ARM7 指令集同 Thum
3、b 扩展组合在一起,以削减内存容量和系统成本。同时,它仍利用嵌入式ICE 调试技术来简化系统设计,并用一个DSP 增强扩展来改进性能。该产品的典型用途是数字蜂窝电话和硬盘驱动器。-ARM9TDMI:接受 5 阶段管道化 ARM9 内核,同时配备 Thumb 扩展、调试和 Harvard总线。在生产工艺相同的情形下,性能可达 ARM7TDMI的两倍之多。 常用于连网和顶置盒。体系扩展- Thumb: 以 16 位系统的成本, 供应 32 位 RISC 性能,特殊留意的是它所需的内存容量特殊小。可编辑资料 - - - 欢迎下载精品名师归纳总结嵌入式 ICE 调试由于集成了类似于ICE 的 CPU
4、内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。微处理器-ARM710系列,包括 ARM710 、ARM710T 、 ARM720T和 ARM740T: 低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存治理、写缓冲和JTAG。广泛应用于手持式运算、数据通信和消费类多媒体。-ARM940T 、920T 系列 :低价、低能耗、高性能系统微处理器,配有Cache、内存治理和写缓冲。应用于高级引擎治理、保安系统、顶置盒、便携运算机和高档打印机。-StrongARM: 性能很高、同时中意常规应用需要的一种微处理器技术,与DEC 联合研制,后来授权给 Intel。SA1
5、10 处理器、 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 一种。 微
6、软在对 SH3、MIPS 、ARM 等嵌入式处理器做了评估后认为, ARM 是一种性价比较好的选择。由于目前ARM 在手持设备市场占有90%以上的份额,只支持ARM ,可以有效的缩短应用程序开发与测试的时间,也降低了研发费用。由于 ARM 开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。2. ARM 芯片 CL-PS7111 主要特点 BLOCKQUOTEBLOCKQUOTE电平 2.7v/3.3v.相对应 CPU 工作频率 13MHz/18MHz. 13MHz位节电模式 , 性能相当于 33MHz Inter 486 PC可编辑资料 - - -
7、欢迎下载精品名师归纳总结ARM710A内核ARM7 CPU8K 4 向缓存 cacheMMU带有 64 入口 TLBTransition Look-aside BufferDRAM把握器支持 16 位和 32 位 DRAMROM/SRAM/Flash Memory把握可译码 4,5 或 6 个独立的 256M 储备空间段每个储备段支持 8 位,16 位和 32 位操作 ,并支持分页模式可编程 ROM/SRAM/Flash Memory支持两个低功耗 CL-PS6700 PC 卡PCMCIA 把握器2K片内 SRAM 用于程序快速执行片内 Boot ROM 128Byte两个同步串行接口支持 S
8、PI,或 Microwire2兼容音频解码器 Audio Codec27 位通用接口 GPIOgeneral-purpose I/O port 3 个 8 位和 1 个 3 位 GPIO port支持键盘阵列扫描 Scanning keyboard matrix两个异步串口UARTs支持高达 115.2K波特率内有两个接收发送 TX,RX 16Bytes FIFOs缓冲支持 MODEM把握信号DC-to-DC 转换器接口可编辑资料 - - - 欢迎下载精品名师归纳总结供应两个 96KHz 时钟输出 ,通过编程 duty ratio1/16-15/16 操作LCD 把握器直接信号扫描板接口 ,单
9、色 LCD面板的大小可编程从16 到 1024 个像素 ,16 个像素为一个单位视频帧大小可编程到128K byte每个像素点的位数可编程1,2,4 位计时器和实时时钟两个 16 位计时器 Timer counter 和一个 32 位实时时钟 RTC /BLOCKQUOTE/BLOCKQUOTE3. 调试工具及调试方法 BLOCKQUOTEARM Project Manager APM include ARM Debuger:这个工具由 ARM 供应主要是开发程序 , 编程调试 ARM 芯片 , 有相当不错的开发环境和远端调试功能, 支持汇编和 C. 它带有一个ARM 自己的嵌入式操作系统AR
10、M Angel,用户可以在它的上面开发自己的嵌入式软件, 不过这个操作系统不是实时多任务的./BLOCKQUOTEBLOCKQUOTE通过运算机串口与处理器UART 相连,设置运算机的超级终端 Hyper Terminal ,通过超级终端观看硬件情形 寄存器设置 ,数据等 和程序运行情形 ,当然程序重要加入向UART 送出数据的指令 , 用 Beep 报警也是经常用的. 这种调试方法是用于底层调试硬件,找出硬件存在的问题 .VxWorks在 Shell不能正常运行前 ,也是实行这种方法来调试程序,不过一般不是硬件问题,而是 BSP 中存在的问题 ,需要依据硬件 ,修改 BSP./BLOCKQU
11、OTE4. ARM7编程要点及示例ARM 编程可参考程序示例ARM_Boot Flash ROM驱动VxWorks image装入 ARM 的过程 : BLOCKQUOTE可编辑资料 - - - 欢迎下载精品名师归纳总结ARM7有两种运行模式 , Boot 模式和 Normal模式 , Boot 模式主要是把程序装入down load或 load Flash ROM 中用的 , Normal 模式是一般运行程序用的.ARM7 Boot模式时 , Flash 的的址是 0x70000000 片选型号是 CS0 Normal 模式下 ,Flash 的址为 0x00000000ARM7 内部有 12
12、8byte 的 BootROM 和 2K 的 SRAM ,当需要 Download VxWorks image时,ARM 启动接受 Boot 方式启动运行存在 128byte BootROM中的程序初始化 ARM 内部的 COM 口, 从 COM 口接受数据到2K 的 SRAM ,这 2K 程序是用来真正 Load VxWorks 的,2K 程序 Load 完毕后系统自动跳转到这2K 程序执行 ,它的作用是再次初始化内部的COM 口,通过 COM 口接受 VxWorks 到 DRAM ,然后由 DRAM写入 FLASH 。在主板 2K SRAM运行的 Boot Load 程序执行过程 ,可参看
13、程序示例中ARM Boot Load程序写入完毕后,切换到Normal 模式重新启动系统,系统自动跳到FLASH 0X00000000开头运行 VXWORKS 。用 PC 机上的 COM1 与 ARM 内部的 UART1 ( COM )通信来 Download VxWorks 。/BLOCKQUOTE主要管脚定义BLOCKQUOTE32 条数据线 : D0D3128 条的址线 : A0-A27 little endian定义 , 相对应数据排列0 1 2 3 4 5 6276 条片选信号脚 : CS0-CS5,其实作用相当于的址线A28A314 个 8 位的 PORT 口: PORT A, P
14、ORT B , PORT D主要用于外围芯片信号的把握. PORT E 有双作用 .例如 PORT A 把握键盘的行信号, PORT B用于 RS232, PORT D 用于把握 MODEM, FPGA.外部中断信号EINT, EXTFIQ.编程时要依据主板原理图和硬件手册进行. BLOCKQUOTE看硬件图纸 , 该芯片和 CPU 的那些管脚连结 . 特殊是 PORT 口和片选线 .查 CPU 手册 , 得到 PORT 口和该片选的硬件的址.编程 : 用 PORT 口直接对芯片操作,如开 ,关,RESET 等, 用片选的址和芯片内的址结合对该外可编辑资料 - - - 欢迎下载精品名师归纳总结
15、围芯片操作 . /BLOCKQUOTE/BLOCKQUOTEException vectors,中断向量表及中断支配Vector 的址 BLOCKQUOTEException/BLOCKQUOTE Exception Mode Priority1=High 0x0 BLOCKQUOTEReset/BLOCKQUOTE Svc 10x4 BLOCKQUOTEUndefined Instruction/BLOCKQUOTE Undef 6 0x8 BLOCKQUOTESoftware Interrupt/BLOCKQUOTE Svc 6 0xC BLOCKQUOTEPrefetch Abort/B
16、LOCKQUOTE Abort 5 0x10 BLOCKQUOTEData Abort/BLOCKQUOTE Abort 2 0x14 BLOCKQUOTEReserved/BLOCKQUOTE Not applicable Not applicable 0x18 BLOCKQUOTEInterrupt IRQ/BLOCKQUOTE irq 40x1C BLOCKQUOTEFast Interrupt FIQ/BLOCKQUOTE Fiq 3 BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE这个向量表必需要放置在系统的址0x00000000 一般是规律的址 , 即经过 MMU 映
17、射后的的址 处./BLOCKQUOTEBLOCKQUOTE一般是在这些的址上放跳转指令BL,跳到相应的的址空间执行相应的程序./BLOCKQUOTEBLOCKQUOTE如系统执行从0x00000000 Reset 开头 , Reset 跳转到某一的址开头运行操作系可编辑资料 - - - 欢迎下载精品名师归纳总结统./BLOCKQUOTEBLOCKQUOTE /BLOCKQUOTEBLOCKQUOTE程序示例 ,中断向量表 ARM asm: VectorStart ; Start of ARM processor vectors LDR pc,ResetV ; 00 - ResetLDR pc,
18、UndefV ; 04 - Undefined instructions LDR pc,SWIV ; 08 - SWI instructionsLDR pc,PAbortV ; 0C - Instruction fetch abortsLDR pc,DAbortV ; 10 - Data access abortsLDR pc,UnusedV ; 14 - Reserved was address exception LDR pc,IRQV ; 18 - IRQ interruptsLDR pc,FIQV ; 1C - FIQ interrupts/BLOCKQUOTE中断号支配 FIQ, I
19、RQ 中断类型 中断号Name说明FIQ 0外部中断EXTFIQ管脚 NEXT FIQ IRQ 5外部中断EINT1管脚 NEINT1IRQ 6外部中断EINT2管脚 NEINT2IRQ 7外部中断EINT3管脚 NEINT3 IRQ 12内部中断UTXINT1 UART1 TX FIFO为空 BLOCKQUOTE /BLOCKQUOTEBLOCKQUOTE中断号也是寄存器INTMR和 INTSR 的位,所以在 ARM 中中断的编程要点是/BLOCKQUOTEBLOCKQUOTE可编辑资料 - - - 欢迎下载精品名师归纳总结看硬件图纸 , 该外设和 CPU 的那一个管脚连结.查 CPU 手册
20、 , 得到中断号及 INTMR,INTSR的的址 .编程/BLOCKQUOTEBLOCKQUOTE注: 假如不是写底层 driver, 只是在系统上层编程 如 VxWorks, Linux知道中断号即可./BLOCKQUOTEBLOCKQUOTE程序示例 VxWorks: /BLOCKQUOTEBLOCKQUOTE/登记中断号 5, 和相应的中断例程ComISR./BLOCKQUOTEBLOCKQUOTE intConnect VOIDFUNCPTR * 5, ComISR, 0 ; /BLOCKQUOTEBLOCKQUOTE/使能这中断 /BLOCKQUOTEBLOCKQUOTEintEna
21、ble VOIDFUNCPTR * 5 ;/BLOCKQUOTEBLOCKQUOTE /BLOCKQUOTEBLOCKQUOTEARM Interrupts: ARM processors implement fast and normal level of interrupt,signalled externally, synchronise interrupts before an exception is raised. A fast interrupt requst FIQ will desable subsequent normal and fast interrupt by set
22、ting the I and F bit in CPSR,and a normal interrup requestIRQ will disable subsequent normal interrupt by setting I bit in CPSR.计时器中断编程过程 BLOCKQUOTEARM7 一般内部有两个 16 位计时器 Timer counter 和一个 32 位实时时钟 RTC, 计时器中断属于 IRQ 中断 ,这里以计时器1 为例表达一下中断的编程过程设置 interrup mask INTMR1寄存器 0x80000240 第 8 位 TC1OI 计时器 1 为使能 .
23、在0x800000300 计时器 1 的数据寄存器 TC1D 写入指定数据 ,这样数据开头从这个给定的数开头递减计数 ,计数递减至0 后,会产生一个溢出underflow IRQ 中断请求 ,中断状态寄存器INTSR1 0x80000240第 8 位 TC1OI 置位.系统会跳到中断向量表的址0x00000018处,执行相应的中断程序 ,中断程序通过判定中断的类型判定中断状态寄存器的位, 来执行相应的中断服务程序 ISR. 中断状态寄存器标志位复位,计时器开头重新开头计时./BLOCKQUOTE /BLOCKQUOTE储备空间治理单元 MMU可编辑资料 - - - 欢迎下载精品名师归纳总结物理
24、的址映射重点在于片选的址CS 的选取 ,另外 MMU 映射需要参考这个物理的址BLOCKQUOTE /BLOCKQUOTEBLOCKQUOTEARM7物理的址映射表 /BLOCKQUOTE的址内容大小备注0xF000.0000 Unused 256Mbytes 0xE000.0000 Unused 256Mbytes 0xD000.0000 DRAM Bank 1 256Mbytes0xC000.0000 DRAM Bank 0 256Mbytes外接 DRAM 0x8000.2000 Unused -1Gbytes0x8000.0000 内部寄存器的址8Kbytes 主要的 I/O 和把握0
25、x7000.0000 Boot ROM 128 bytes片内 ,封有 Boot 程序0x6000.0000 On-chip SRAM 2 Kbytes片内 ,存放 Load 程序0x5000.0000 PCMCIA-1NCS5 4*64 Mbytes0x4000.0000 PCMCIA-0NCS4 4*64 Mbytes0x3000.0000 外部扩展 NCS3 256Mbytes0x2000.0000 外部扩展 NCS2 256Mbytes0x1000.0000 ROM Bank 1NCS1 256Mbytes0x0000.0000 ROM Bank 0NCS0 256Mbytes外接 F
26、lash ROMMMU虚拟 规律 的址和物理的址的映射实例BLOCKQUOTEVxworks 支持的 ARM 架构的处理器 ,一般是 RAM 的起始位置为 0x0, 而实际上 ARM 的物理的址 0x0 是 ROM 的起始的址 ,RAM 在高位的址 .这就需要系统在 Boot 过程中 ,执行 MMU 程序,重新映射 RAM 和 ROM 的的址 .即 RAM 起始的址为 0x0./BLOCKQUOTEMMU 主要有 ARM7 中协处理器 coprocessor 15 把握 ,coporocessor主要把握 :BLOCKQUOTE片内的 MMU可编辑资料 - - - 欢迎下载精品名师归纳总结指令
27、和数据缓存 IDC Write BufferWBMMU 有两层页表 two-level page table 用来进行虚拟的址向物理的址转换,CP15 定义 16 个寄存器 ,只有 MRC 和 MCR 指令才能对它们操作 .在 VxWorks 系统中 ,MMU 表分成两部分 :boot up table 和 final table. 在文件 ramAtHigh.h中定义.该表在文件 romInit.s 中初始化 ,语句为 :BL _ramAtHigh_12/BLOCKQUOTEMMU 映射实例虚拟 规律 的址 VxWorks 系统 硬件物理的址 RAM首的址 0x0000.0000 Low A
28、ddress 0x0000.1000High Address 0x0060.0000 ROM0x0100.0000其他的的址规律的址和物理的址映射的址不变0x8000.0000 内部寄存器.相同的颜色映射对应的的址ROM 0x0000.0000 VxWorks image和文件系统RAM首的址 0xC000.0000 存放 LCD,MMU表等可编辑资料 - - - 欢迎下载精品名师归纳总结0xC004.0000中断向量表等0xC004.1000 VxWorks运行位置0xC064.0000 VxWorks从 ROM 解压后 Copy 的位置其他的的址映射的址不变0x8000.0000 内部寄存器.其中 ,Low Address,High Address 在系统配置文件 config.h 和 Makefile 中设置 ,参见 BSP 文件示例可编辑资料 - - - 欢迎下载