版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARM 简介及编程1.ARM 简介 (摘录 )ARM( Advanced RISC Machines )是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的 RISC 处理器、 相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP 和移动式应用等。ARM 将其技术授权给世界上许多著名的半导体、软件和OEM 厂商,每个厂商得到的都是一套独一无二的ARM 相关技术及服务。利用这种合伙关系,ARM 很快成为许多全球性 RISC 标准的缔造者。目前,总共有 30 家半导体公司与ARM 签订了硬件技术使用许可协议,其中包括Intel 、
2、IBM 、 LG 半导体、 NEC 、SONY 、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和MRI 等一系列知名公司。ARM 架构是面向低预算市场设计的第一款RISC 微处理器。2.产品介绍ARM 提供一系列内核、体系扩展、微处理器和系统芯片方案。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此) 。典型的产品如下。 CPU 内核-ARM7 :小型、快速、低能耗、集成式RISC 内核,用于移动通信。- ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将ARM7 指令集同Thumb扩展组合在一起,以减少内存容量和系统
3、成本。同时,它还利用嵌入式ICE 调试技术来简化系统设计,并用一个DSP 增强扩展来改进性能。该产品的典型用途是数字蜂窝电话和硬盘驱动器。-ARM9TDMI: 采用 5 阶段管道化 ARM9 内核,同时配备 Thumb 扩展、调试和 Harvard 总线。在生产工艺相同的情况下, 性能可达 ARM7TDMI 的两倍之多。 常用于连网和顶置盒。体系扩展- Thumb: 以 16 位系统的成本, 提供 32 位 RISC 性能,特别注意的是它所需的内存容量非常小。1 / 11嵌入式 ICE 调试由于集成了类似于ICE 的 CPU 内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。微处理器
4、-ARM710 系列,包括ARM710 、 ARM710T 、 ARM720T 和 ARM740T: 低价、低能耗、封装式常规系统微型处理器,配有高速缓存(Cache)、内存管理、写缓冲和JTAG 。广泛应用于手持式计算、数据通信和消费类多媒体。-ARM940T 、920T 系列 :低价、低能耗、高性能系统微处理器,配有Cache、内存管理和写缓冲。应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。-StrongARM: 性能很高、同时满足常规应用需要的一种微处理器技术,与DEC 联合研制,后来授权给 Intel 。 SA110 处理器、 SA1100 PDA 系统芯片和 SA15
5、00 多媒体处理器芯片均采用了这一技术。-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 等嵌入式处理器做了评估后认为
6、,ARM 是一种性价比较好的选择。由于目前ARM 在手持设备市场占有90%以上的份额,只支持ARM ,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。由于ARM 开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。2. ARM 芯片 CL-PS7111 主要特点 BLOCKQUOTEBLOCKQUOTE电平 2.7v/3.3v.相对应 CPU 工作频率 13MHz/18MHz. 13MHz位节电模式 , 性能相当于33MHzInter 486 PC2 / 11ARM710A内核ARM7 CPU8K 4 向缓存 (cache)MMU带有 64
7、入口 TLB(Transition Look-aside Buffer)DRAM 控制器支持 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)两个同步串行接口支持 SPI,或 Microwire2兼容音频解码器 (Audio Codec)27 位通用接口GPI
8、O(general-purpose I/O port)3 个 8 位和 1 个 3 位 GPIO port支持键盘阵列扫描(Scanning keyboard matrix)两个异步串口UARTs支持高达 115.2K波特率内有两个接收发送(TX,RX) 16Bytes FIFOs缓冲支持 MODEM控制信号DC-to-DC 转换器接口3 / 11提供两个96KHz 时钟输出 ,通过编程duty ratio(1/16-15/16) 操作LCD 控制器直接信号扫描板接口,单色 LCD面板的大小可编程从16 到 1024 个像素 ,16 个像素为一个单位视频帧大小可编程到128K byte每个像素
9、点的位数可编程1,2,4 位计时器和实时时钟两个 16 位计时器 (Timer counter) 和一个 32 位实时时钟 (RTC)/BLOCKQUOTE/BLOCKQUOTE3. 调试工具及调试方法BLOCKQUOTEARM Project Manager (APM) include ARM Debuger:这个工具由ARM 提供主要是开发程序,编程调试 ARM 芯片 , 有相当不错的开发环境和远端调试功能, 支持汇编和 C. 它带有一个ARM 自己的嵌入式操作系统ARM Angel, 用户可以在它的上面开发自己的嵌入式软件, 不过这个操作系统不是实时多任务的./BLOCKQUOTEBLO
10、CKQUOTE通过计算机串口与处理器UART 相连 ,设置计算机的超级终端( Hyper Terminal ), 通过超级终端察看硬件情况 (寄存器设置 ,数据等 )和程序运行情况 ,当然程序重要加入向 UART 送出数据的指令 , 用 Beep 报警也是经常用的 . 这种调试方法是用于底层调试硬件,找出硬件存在的问题 .VxWorks 在 Shell 不能正常运行前 ,也是采取这种方法来调试程序,不过一般不是硬件问题,而是 BSP 中存在的问题 ,需要根据硬件 ,修改 BSP./BLOCKQUOTE4. ARM7编程要点及示例ARM 编程可参考程序示例ARM_Boot Flash ROM驱动
11、VxWorks image装入 ARM 的过程 :BLOCKQUOTE4 / 11ARM7 有两种运行模式 , Boot 模式和 Normal 模式 , Boot 模式主要是把程序装入 (down load 或 load )Flash ROM 中用的 , Normal 模式是一般运行程序用的 .ARM7 Boot模式时 , Flash 的地址是0x70000000 片选型号是CS0 (Normal 模式下 ,Flash 地址为 0x00000000)ARM7 内部有 128byte 的 BootROM 和 2K 的 SRAM ,当需要 Download VxWorks image 时 ,ARM
12、启动采用 Boot 方式启动运行存在128byte BootROM 中的程序初始化ARM 内部的 COM 口,从 COM 口接受数据到2K 的 SRAM ,这 2K 程序是用来真正Load VxWorks 的,2K 程序 Load完毕后系统自动跳转到这 2K 程序执行 ,它的作用是再次初始化内部的 COM 口 ,通过 COM 口接受 VxWorks 到 DRAM ,然后由 DRAM 写入 FLASH 。在主板 2K SRAM 运行的 Boot Load 程序执行过程 ,可参看程序示例中 ARM Boot Load 程序写入完毕后,切换到Normal 模式重新启动系统,系统自动跳到FLASH 0
13、X00000000开始运行 VXWORKS 。用 PC 机上的 COM1 与 ARM 内部的 UART1 ( COM )通信来 Download VxWorks 。/BLOCKQUOTE主要管脚定义BLOCKQUOTE32 条数据线 : D0-D3128 条地址线 : A0-A27 little endian 定义 , 相对应数据排列0 1 2 3 4 5 6-276条片选信号脚 : CS0-CS5, 其实作用相当于地址线A28-A314个 8 位的 PORT 口: PORT A, PORT B , PORT D 主要用于外围芯片信号的控制. PORT E 有双作用 .例如PORT A 控制键
14、盘的行信号, PORT B 用于 RS232, PORT D 用于控制 MODEM, FPGA.外部中断信号EINT, EXTFIQ.编程时要根据主板原理图和硬件手册进行. BLOCKQUOTE看硬件图纸 , 该芯片和CPU 的那些管脚连结. 特别是PORT 口和片选线 .查 CPU 手册 , 得到 PORT 口和该片选的硬件地址.编程 : 用 PORT 口直接对芯片操作,如开 ,关 ,RESET 等 , 用片选地址和芯片内地址结合对该外5 / 11围芯片操作 ./BLOCKQUOTE/BLOCKQUOTEException vectors,中断向量表及中断分配Vector 地址BLOCKQU
15、OTEException/BLOCKQUOTE Exception Mode Priority(1=High)0x0 BLOCKQUOTEReset/BLOCKQUOTE Svc 10x4 BLOCKQUOTEUndefined Instruction/BLOCKQUOTE Undef 60x8 BLOCKQUOTESoftware Interrupt/BLOCKQUOTE Svc 60xC BLOCKQUOTEPrefetch Abort/BLOCKQUOTE Abort 50x10 BLOCKQUOTEData Abort/BLOCKQUOTE Abort 20x14 BLOCKQUOTE
16、Reserved/BLOCKQUOTE Not applicable Not applicable0x18 BLOCKQUOTEInterrupt (IRQ)/BLOCKQUOTE irq 40x1C BLOCKQUOTEFast Interrupt (FIQ)/BLOCKQUOTE Fiq 3BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE这个向量表必须要放置在系统地址0x00000000 ( 一般是逻辑地址, 即经过 MMU 映射后的地址 ) 处./BLOCKQUOTEBLOCKQUOTE一般是在这些地址上放跳转指令BL,跳到相应的地址空间执行相应的程序 ./BLOCKQUO
17、TEBLOCKQUOTE如系统执行从0x00000000 Reset 开始 , Reset 跳转到某一地址开始运行操作系6 / 11统 ./BLOCKQUOTEBLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE程序示例 ,中断向量表(ARM asm):_VectorStart ; Start of ARM processor vectorsLDR pc,ResetV ; 00 - ResetLDR pc,UndefV ; 04 - Undefined instructionsLDR pc,SWIV ; 08 - SWI instructionsLDR pc,PAbortV ; 0C
18、 - 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, IRQ) 中断类型中断号Name说明FIQ 0外部中断EXTFIQ管脚 NEXT FIQ IRQ 5外部中断EINT1管脚 NEINT1IRQ 6外部中断EINT2管脚 NEINT2
19、IRQ 7外部中断EINT3管脚 NEINT3IRQ 12 内部中断UTXINT1 UART1 TX FIFO为空BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTE中断号也是寄存器INTMR 和 INTSR 的位 ,所以在 ARM 中中断的编程要点是/BLOCKQUOTEBLOCKQUOTE7 / 11看硬件图纸 , 该外设和CPU 的那一个管脚连结.查 CPU 手册 , 得到中断号及 INTMR,INTSR 的地址 .编程/BLOCKQUOTEBLOCKQUOTE注: 如果不是写底层driver, 只是在系统上层编程( 如 VxWorks, Linux)知道中断号即可 ./BLO
20、CKQUOTEBLOCKQUOTE程序示例 (VxWorks): /BLOCKQUOTEBLOCKQUOTE/登记中断号 5, 和相应的中断例程 ComISR./BLOCKQUOTEBLOCKQUOTE intConnect ( ( VOIDFUNCPTR * ) 5, ComISR, 0 ) ; /BLOCKQUOTEBLOCKQUOTE /使能这中断 /BLOCKQUOTEBLOCKQUOTEintEnable ( ( VOIDFUNCPTR * ) 5 );/BLOCKQUOTEBLOCKQUOTE /BLOCKQUOTEBLOCKQUOTEARM Interrupts: ARM pro
21、cessors 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 setting the I and F bit in CPSR,and a normalinterrup request(IRQ) will disable subsequen
22、t normal interrupt by setting I bit in CPSR.计时器中断编程过程BLOCKQUOTEARM7 一般内部有两个16 位计时器 (Timer counter) 和一个 32 位实时时钟 (RTC), 计时器中断属于 IRQ 中断 ,这里以计时器1 为例叙述一下中断的编程过程设置 interrup mask INTMR1寄存器0x80000240 第 8 位 TC1OI 计时器 1 为使能 . 在0x800000300 计时器1 的数据寄存器TC1D 写入指定数据 ,这样数据开始从这个给定的数开始递减计数 ,计数递减至0 后,会产生一个溢出underflow
23、 IRQ 中断请求 ,中断状态寄存器INTSR1 0x80000240第 8 位 TC1OI 置位 .系统会跳到中断向量表地址0x00000018处 ,执行相应的中断程序 ,中断程序通过判断中断的类型(判断中断状态寄存器的位), 来执行相应的中断服务程序ISR. 中断状态寄存器标志位复位,计时器开始重新开始计时./BLOCKQUOTE/BLOCKQUOTE存储空间管理单元(MMU)8 / 11物理地址映射重点在于片选地址CS 的选取 ,另外 MMU 映射需要参考这个物理地址BLOCKQUOTE/BLOCKQUOTEBLOCKQUOTEARM7物理地址映射表/BLOCKQUOTE地址内容大小备注
24、0xF000.0000 Unused 256Mbytes0xE000.0000 Unused 256Mbytes0xD000.0000 DRAM Bank 1 256Mbytes0xC000.0000 DRAM Bank 0 256Mbytes外接 DRAM0x8000.2000Unused -1Gbytes0x8000.0000内部寄存器地址8Kbytes主要的 I/O 和控制0x7000.0000Boot ROM 128 bytes 片内 ,封有 Boot 程序0x6000.0000On-chip SRAM 2 Kbytes 片内 ,存放 Load 程序0x5000.0000PCMCIA-
25、1(NCS5)4*64 Mbytes0x4000.0000PCMCIA-0(NCS4)4*64 Mbytes0x3000.0000外部扩展 (NCS3) 256Mbytes0x2000.0000外部扩展 (NCS2) 256Mbytes0x1000.0000ROM Bank 1(NCS1) 256Mbytes0x0000.0000 ROM Bank 0(NCS0) 256Mbytes外接 Flash ROMMMU虚拟 (逻辑 )地址和物理地址的映射实例BLOCKQUOTEVxworks 支持的 ARM 架构的处理器,一般是 RAM 的起始位置为0x0, 而实际上ARM 的物理地址 0x0 是 ROM 的起始地址 ,RAM 在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业营销管理的11项原则
- 《材料加工检测技术》教学大纲
- 教案第一课神奇的货币
- 玉溪师范学院《田径》2023-2024学年第一学期期末试卷
- 经济贸易毕业论文:中国外贸竞争力探究
- 玉溪师范学院《普通话与教师口语》2021-2022学年第一学期期末试卷
- 会计从业资格考试财经法规教案
- 建筑公司规章制度范本
- 销售部门年终工作总结课件模板
- 东南亚运动户外电商行业市场洞察
- 2024年工程承包合同协议书模板
- 第五节 错觉课件
- 2024-2030年中国水煤浆行业发展规模及投资可行性分析报告
- 2024中国石油报社高校毕业生招聘6人管理单位遴选500模拟题附带答案详解
- 高校实验室安全基础学习通超星期末考试答案章节答案2024年
- 国开2024年《中国法律史》平时作业1-3答案
- 自然资源调查监测技能竞赛理论考试题库大全-下(判断题)
- 李燕璇植树问题卡通版5
- 井式炉课程设计说明书
- 个人简历模版
- 油浸式变压器作业工艺流程图
评论
0/150
提交评论