190 likes | 404 Views
ARM 处理器开发. ARM 公司简介. ARM 公司作为 32 位处理器内核的提供者,拥有 100 多家半导体合作伙伴, ARM core 是目前消费类电子市场中市场占有量第一的 CPU 体系。 ARM 是一个 CPU 内核。 ARM 公司自己并不生产或销售芯片,它采用技术授权模式,通过出售芯片技术授权,收取授权费与技术转让费 随着 ARM/MIPS/ARC 等成熟内核的推出,很多过去没有 32 位 cpu 研发能力的半导体公司进入这一行列。. ARM 系列处理器. ARM 系列内核的优势 低价格 低功耗 高处理能力。
E N D
ARM公司简介 • ARM 公司作为32位处理器内核的提供者,拥有100多家半导体合作伙伴,ARM core是目前消费类电子市场中市场占有量第一的CPU体系。 • ARM是一个CPU内核。ARM公司自己并不生产或销售芯片,它采用技术授权模式,通过出售芯片技术授权,收取授权费与技术转让费 • 随着ARM/MIPS/ARC等成熟内核的推出,很多过去没有32位cpu研发能力的半导体公司进入这一行列。
ARM系列处理器 • ARM系列内核的优势 • 低价格 • 低功耗 • 高处理能力。 • 另外具有Thumb,DSP,jazeller功能扩展
ARM系列处理器 • 主流ARM内核: • ARM7 :arm7tdmi,arm720t(MMU) • ARM9 • ARM10 • StrongARM/Xscale
ARM系列处理器 • ATMEL公司arm系列 • AT91系列: 优点:工业级。但缺乏lcd驱动等较吸引力的外围电路。 • AT75/76系列: 内置arm7/DSP双内核,有Arm+2DSP/ARM+DSP+MAC,两种配置,加上PHY就可实现voip终端
ARM系列处理器 • Cirrus logic公司 机顶盒/mp3/IA等专用SOC,有数模混合和视频/音频处理优势。 • EP7211 • EP7212 • EP7209 • EP9312
ARM系列处理器 • NetScillon公司 ARM+NET系列芯片,关注设备上网(嵌入式internet)解决方案。 • Samsung: Arm系列SOC芯片,集成度高,关注mp3/pda应用。 • Motolora : 最近推出龙珠MX1,使用了arm内核。
ARM系列开发 • C/C++开发平台 ADS :ARM公司提供 SDT:ARM公司提供 HITOOL:祥宝公司提供 EMBEST:英蓓特公司提供 GNU:免费平台
ARM系列仿真调试器 • ARM系列支持JTAG规范 目前支持ARM的调试器: Angel---rom monitor JEENI Multi-Ice TraceIcd ….
ARM7处理器基础知识 • ARM/THUMB • THUMB (inside 32bit,code 's 16bit)--增加代码密度减少成本 • 7种模式: 用户态/FIQ/IRQ/管理态/中止态/系统态/未定义寄存器。
ARM7寄存器 R0--R7 : 通用寄存器 • R8_FIQ ---R12_FIQ:允许快速中断处理 • /R8_USER ---- R12_USER 其它态。 • R13,R14/USER:SYSTEM • R13,R14/FIQ R13,R14/管理态 • R13,R14/IRQ R13,R14/中止态 R13,R14/UNDEF • R13用于各工作态的堆栈寄存器 • R14用来保护程序调用的现场PC指针 • R15:pc
中断与异常 • 复位 0x00000000开始或0xffff0000开始 • 管理模式 IRQ 中断irq引脚产生,比Fiq优先级低。进入Fiq时,会屏蔽irq.0x000000018或0xffff0018 • FIQ 快速中断引脚产生,放在矢量表的最后,另外有自己的临时寄存器,提升中断响应 0x0000001c或0xffff001c • 异常进入均为ARM态,另外异常的返回各不相同。FIQ: movs pc,r14_fiq,#4 IRQ: movs pc,r14_fiq,#4 • Fiq/irq 的最大延迟时间:29个时钟周期。 • 最小延迟时间:5个时钟周期。
存储器和I/O • ARM体系同时支持大尾端/小尾端 • 小位端:11223344 --〉44,33,22,11。 • 32根地址线 • 32根数据线 • 内部cache • I/O采用内存映射的方式实现
ARM指令集 • 寄存器寻址: ADD R0,R1,R2 • 立即寻址:ADD r0,r0,#3 ADD r0,r1,#&0f • 寄存器移位寻址: ADD R0,R1,R2,LSL #3 • 寄存器间接寻址: LDR R0,[R1] • STR R0,[R1]
ARM指令集 • 基址寻址: LDR R0,[R1,#4] • LDR R0,[R1,#4]! • LDR RO,[R1],#4 • STR R0,[R1,#4]!
ARM指令集 • 多寄存器寻址: • LDMIA R0,{R1,R2,R3} • 块拷贝寻址: • STMFD R13!,{R2-R9} /PUSH • LDMIA R0!,{R2-R9} • STMIA R1,{R2-R9} • LDMFD R13!,{R2-R9} /POP
ARM指令集 • 相对寻址: • BL SUBR • ADD RO,R1,R2 • SUBR ADD R1,R2,R3 • MOV PC,R14
ARM指令集 • 条件执行: • 所有的ARM指令可包含一个可选的条件码,只有在满足指定的条件时,带条件码的指令才能执行。 • 如果要指令的结果更新条件标志,需要在指令后面加S. • 一些指令eg:CMP,CMN,TST,TEQ不需要加s
ARM指令集 • EQ:/NE 等于/不等于 • CS/HS: CC/LO 大于或等于/小于 • MI:PL 负/正或零 • VS:VC 溢出/不溢出 • HI:LS 大于/小于或等于 • GE:LT 大于或等于/小于 -带符号 • GT:LE 大于/小于或等于 -带符号