深圳市微迪软件技术有限公司
本讲培训目标
对ARM处理器相关产品有整体上的了解
了解选择ARM处理器的选择依据
了解ARM处理器的编程模型
了解ARM处理器的指令系统
1微迪培训中心
深圳市微迪软件技术有限公司
课程内容
第一章 ARM处理器介绍
第二章 ARM处理器选择依据
第三章 ARM处理器编程模型
第四章 ARM处理器指令系统
2微迪培训中心
深圳市微迪软件技术有限公司
ARM公司简介
ARM(Advanced RISC machines)公司是全球领先的
16/32位微处理器知识产权设计供应商。1990年正式成
立。
ARM 公司作为32位处理器内核的提供者,拥有100多
家半导体合作伙伴。
3微迪培训中心
深圳市微迪软件技术有限公司
ARM公司简介
4微迪培训中心
深圳市微迪软件技术有限公司
第一章
ARM处理器介绍
5微迪培训中心
深圳市微迪软件技术有限公司
ARM简介
ARM是一个CPU核。ARM公司自己并不生
产或销售芯片,它采用技术授权模式,
通过出售芯片技术授权,收取授权费与
技术转让费
这种商业模式导致ARM公司专注于arm
core 技术的设计。
价格合理,过去没有32位cpu研发能力的
半导体公司进入这一行列。
6微迪培训中心
深圳市微迪软件技术有限公司
ARM简介
ARM首先在移动计算领域获得盛誉,目前基于
ARM的SOC芯片在手持产品,多媒体消费产品,
中底端网络设备广泛应用。
ARM体系性价比高,功耗低,获得了众多知名
芯片厂家的支持和授权。
如 Samsung,Atmel,Intel,Motorola,TI,Qualcomm
, Conexant, CirrusLogic,SONY, LSI,
LinkUp…….
7微迪培训中心
深圳市微迪软件技术有限公司
供应商 芯片1 芯片2 芯片3 芯片4 主要应用
Intel SA-110 SA-1100 SA-1110 IXP1200
Palm PC,
Network
TI TMS320DSC21 TMS320DSC24 TMS320DSC25 OMAP1510 Digital Camera
Samsung S3C44B0X S3C2410 S3C4510 S5N8946 ADSL,PDA
Motorola Dragonball MX1 BT,PDA
Philips SAA7750 VWS22100 VCS94250 VWS26001
MP3,GSM
,3G,BT
Cirrus Logic EP7209 EP7212 EP7312 EP9312 GP,MP3
ATMEL AT91R40XXX AT75C310 AT76C901 AT76C502 GP, Wireless
主要ARM芯片供应商及其代表性产品和主要应用领域
8微迪培训中心
深圳市微迪软件技术有限公司
ARM简介
ARM功能强大,完善的开发工具支持,
因此越来越受到国内工程师的欢迎。
目前国内流行的ARM处理器应用主要基
于ARM7TDMI内核。
---s3c4510 /44b0
---at9140800
9微迪培训中心
深圳市微迪软件技术有限公司
嵌入式产品处理器
目8bit单片机主要问题是:
外围扩充代码/数据空间困难。
mips值低,无法快速实现协议处理功能,
,外接ethernet/上tcp/ip协议困难,无法
完成视频音频处理
10微迪培训中心
深圳市微迪软件技术有限公司
其他嵌入式处理器介绍
X86系列
Motolora系列
MIPS系列
SH/HP-RISC等系列
11微迪培训中心
深圳市微迪软件技术有限公司
X86系列
CPU性能价格比良好
开发简单,软件兼容性好。
软件资源丰富
开发平台简单
目前有大量工控104板,CPCI板可使用,
方便二次开发。
12微迪培训中心
深圳市微迪软件技术有限公司
X86系列cpu—Intel公司
intel嵌入式x86系列:186series,
386ex,
AMD嵌入式x86系列
:186/188em/es/cc..Elan520..
NS系列:Geode™ GX, GXLV,GXM
13微迪培训中心
深圳市微迪软件技术有限公司
Motorola系列处理器
Motorola系列处理器
68k/Dragonball
Cpu32
Coldfire
PPC8xx
PPC82xx
14微迪培训中心
深圳市微迪软件技术有限公司
Motorola系列处理器
开发工具完备,技术支持力量强大
高端通信市场主要芯片供应商
抗干扰,军品指标
产品线完备
15微迪培训中心
深圳市微迪软件技术有限公司
其他系列内核
SH3 core:
HP-RISC core:
MIPS core:
有多款机顶盒/视频SOC产品使用
ST7…..
16微迪培训中心
深圳市微迪软件技术有限公司
ARM系列处理器
ARM系列内核的优势
低价格
低功耗
高处理能力。
另外具有Thumb,DSP,jazeller功能扩展
支持厂家多,资源重用性好。
17微迪培训中心
深圳市微迪软件技术有限公司
ARM系列处理器
主流ARM内核:
ARM7 /TDMI 720T
ARM9/ARM9E
ARM10
Securcore
StrongARM/Xscale
18微迪培训中心
深圳市微迪软件技术有限公司
ARM系列处理器
ATMEL公司arm系列
AT91系列
目标替代单片机,单纯CPU核。
AT75/76系列:
内 置 arm7/DSP双 内 核 , 有
Arm+2DSP/ARM+DSP+MAC,两种配置,加上
PHY就可实现voip终端
19微迪培训中心
深圳市微迪软件技术有限公司
ARM系列处理器
Cirrus logic公司
机顶盒/mp3/IA等专用SOC,有数模混合
和视频/音频处理优势。
EP7211
EP7212
EP7209
EP9312
20微迪培训中心
深圳市微迪软件技术有限公司
ARM系列处理器
NetScillon公司
ARM+NET系列芯片,关注设备上网(嵌入式
internet)解决方案。
Samsung:
Arm系列SOC芯片,4510/44b0/2410…集成度
高,关注网络/移动存储/mp3/pda应用。
Motolora :
龙珠MX1,使用了arm9内核…..
21微迪培训中心
深圳市微迪软件技术有限公司
第二章
ARM处理器的选择依据
22微迪培训中心
深圳市微迪软件技术有限公司
第一、ARM微处理器内核的选择
用户如果希望使用WinCE或标准Linux等操作系统以减
少软件开发时间,就需要选择ARM720T以上带有
MMU(Memory Management Unit)功能的ARM芯片,
ARM720T、 ARM920T、 ARM922T、 ARM946T、 Strong-ARM
都带有MMU功能。
ARM7TDMI( S3C4510B )则没有MMU,不支持Windows
CE和标准Linux,但目前有uCLinux等不需要MMU支持的
操作系统可运行于ARM7TDMI硬件平台之上。
uCLinux已经成功移植到多种不带MMU的微处理器平台
上,并在稳定性和其他方面都有上佳表现。
23微迪培训中心
深圳市微迪软件技术有限公司
第二、系统的工作频率
系统的工作频率在很大程度上决定了ARM微处
理器的处理能力。
ARM7系 列 微 处 理 器 的 典 型 处 理 速 度 为
20MHz-133MHz
ARM9系 列 微 处 理 器 的 典 型 处 理 速 度 为
为100MHz-233MHz,
ARM10最高可以达到700MHz。
24微迪培训中心
深圳市微迪软件技术有限公司
第三、片内外围电路的选择
除ARM微处理器核以外,几乎所有的ARM芯片均
根据各自不同的应用领域,扩展了相关功能
模块,并集成在芯片之中,称之为片片内内外外围围电电
路路
例如:USB接口、IIS接口、LCD控制器、键盘
接口、RTC、ADC和DAC、DSP协处理器等
目的:设计者应分析系统的需求,尽可能采用
片内外围电路完成所需的功能,这样既可简化
系统的设计,同时提高系统的可靠性。
25微迪培训中心
深圳市微迪软件技术有限公司
第四、芯片内存储器的容量
大多数的ARM微处理器片内存储器的容量
都不太大,需要用户在设计系统时外扩
存储器
但也有部分芯片具有相对较大的片内存
储空间,
如ATMEL的AT91F40162就具有高达2MB的
片内程序存储空间
用户在设计时可考虑选用这种类型,以
简化系统的设计。
26微迪培训中心
深圳市微迪软件技术有限公司
第三章
ARM微处理器的编程模型
27微迪培训中心
深圳市微迪软件技术有限公司
ARM体系结构介绍
RISC 体系结构:
指令数少
寻址方式少
指令定长
单指令周期
多级流水线
寄存器完成运算,存储器只有加载和存储指
令。
28微迪培训中心
深圳市微迪软件技术有限公司
ARM体系结构介绍
ARM/THUMB模式
THUMB (inside 32bit,code ‘s 16bit)--增
加代码密度减少成本
ARM7TDMI (参下页)
ARM7TDMI处理器可以在ARM/THUMB两
种指令模式下工作和切换
29微迪培训中心
深圳市微迪软件技术有限公司
ARM7TDMI
在ARM的内核终有四个功能模块,可以供生产厂商根
据不同的要求来配置生产,这四个模块分别是:T、D、
M、I。
T—THUMBT—THUMB。。该内核可以支持16位压缩指令集扩充到
32位的指令
DD--.该内核放置了用于调试的结构,通常为一
个边界扫描链(JTAG),可以使CPU进入调试模式,
从而方便的进行断点设置。
MM-- Multiplier Multiplier内嵌硬件8位乘法器
I I--ICEICE((InIn--CircuitCircuit--EmulationEmulation ))。用于实现断点观
测及变量观测的逻辑电路部分,其中TAP控制器可接入
到边界扫描链
30微迪培训中心
深圳市微迪软件技术有限公司
ARM体系结构介绍
内核7种工作模式:
用户态/FIQ/IRQ/管理态/中止态/系统态/未定义态。
用户态无法改变模式,除非异常发生(SWI)
1)用户态无法访问某些受限资源,如修改CPSR的控制
位。
2)除用户模式以外,其余的所有6种模式称之为非用户
模式,或特权模式(Privileged Modes);
3)其中除去用户模式和系统模式以外的5种又称为异常
模式(Exception Modes),常用于处理中断或异常,
以及需要访问受保护的系统资源等情况。
31微迪培训中心
深圳市微迪软件技术有限公司
ARM寄存器
ARM微处理器共有37个32位寄存器,其中31个为
通用寄存器,6个为状态寄存器。
R0—R12 :通用寄存器
R8_FIQ ---R12_FIQ:允许快速中断处理
R13用于各工作态的堆栈寄存器
R14用来保护程序调用的现场PC指针
R15:pc
CPSR:状态寄存器
SPSR:用于保存CPSR的状态
32微迪培训中心
深圳市微迪软件技术有限公司
THUMB寄存器
SP--R13
LR-R14
PC R15
R8---R15 访问受限
33微迪培训中心
深圳市微迪软件技术有限公司
中断与异常
区别:正在执行的程序发生暂时的停止
是异常;它的当前状态没有保存。
复位:矢量表 0x00000000
IRQ 中断irq引脚产生,比Fiq优先级低。
进入Fiq时,会屏蔽irq
FIQ 矢量放在矢量表的最后,另外有自
己的临时寄存器,提升中断响应
0x0000001c
优先级:最高为复位,最低是SWI.
34微迪培训中心
深圳市微迪软件技术有限公司
中断与异常
异常发生:将下一条当前要执行的指令
地址存入LR中,复制CPSRSPSR.获得
中断矢量并执行。
异常处理函数返回:
LR处理-PC
SPSR CPSR
清除中断禁止位标志。
35微迪培训中心
深圳市微迪软件技术有限公司
存储器和I/O
ARM体系同时支持大尾端/小尾端
小位端:11223344 --〉44,33,22,11。
大尾端:11223344 --〉11,22,33,44。
32根地址线
32根数据线
内部cache
I/O采用内存映射的方式实现
36微迪培训中心
深圳市微迪软件技术有限公司
第四章
ARM处理器的指令系统
37微迪培训中心
深圳市微迪软件技术有限公司
ARM指令寻址方式
寄存器寻址:ADD R0,R1,R2 ;
R0←R1+R2
立即寻址:ADD R0,R0,#1 ;R0←R0
+1
ADD R0,R0,#0x3f;R0←R0+0x3f
ADD R0,R0,#&3f;R0←R0+0x3f
寄存器移位寻址: ADD R0,R1,R2,LSL #3
寄存器间接寻址: LDR R0,[R1]
STR R0,[R1]
38微迪培训中心
深圳市微迪软件技术有限公司
ARM指令寻址方式
基址寻址:
LDR R0,[R1,#4] ;R0←[R1+4]
LDR R0,[R1,#4]! ;R0←[R1+4]、
R1←R1+4
LDR R0,[R1] ,#4 ;R0←[R1]、
R1←R1+4
LDR R0,[R1,R2] ;R0←[R1+R2]
39微迪培训中心
深圳市微迪软件技术有限公司
ARM指令集
多寄存器寻址:
LDMIA R0,{R1,R2,R3}
块拷贝寻址:
STMFD R13!,{R2-R9} /PUSH
LDMIA R0!,{R2-R9}
STMIA R1,{R2-R9}
LDMFD R13!,{R2-R9} /POP
40微迪培训中心
深圳市微迪软件技术有限公司
ARM指令集
相对寻址:
BL SUBR
MOV PC,R14
41微迪培训中心
深圳市微迪软件技术有限公司
ARM指令集
条件执行:
所有的ARM指令可包含一个可选的条件
码,只有在满足指定的条件时,带条件
码的指令才能执行。
如果要指令的结果更新条件标志,需要
在指令后面加S.
一些指令eg:CMP,CMN,TST,TEQ不需要
加s
42微迪培训中心
深圳市微迪软件技术有限公司
ARM指令集
EQ:/NE 等于/不等于
CS/HS: CC/LO 大于或等于/小于
MI:PL 负/正或零
VS:VC 溢出/不溢出
HI:LS 大于/小于或等于
GE:LT 大于或等于/小于 -带符号
GT:LE 大于/小于或等于 -带符号
43微迪培训中心
深圳市微迪软件技术有限公司
ARM系列开发
ARM处理器软件开发环境
SDT
ADS
GNU
嵌入式的c开发环境:
交叉编译/启动代码
定标器
远端调试
44微迪培训中心
深圳市微迪软件技术有限公司
GNU介绍
Gnu与GDB
ARM与嵌入式Linux
45微迪培训中心
深圳市微迪软件技术有限公司
SDT/ADS简介
ADS使用了codewarrior外壳
使用更直观方便,调试器进行了改进。
SDT界面演示
APM建立一个新项目
编译/连接等选项配置说明
ADW+Jtag调试器演示
46微迪培训中心
深圳市微迪软件技术有限公司
JTAG/ARM处理器的调试
ARM系列内置支持JTAG调试
JTAG调试演示
断点/RAM/ROM断点
察看内存
察看寄存器
47微迪培训中心
深圳市微迪软件技术有限公司
仿真器与调试器的历史
全仿真器
使用硬件仿真芯片和仿真内存,连接困
难,价格昂贵。
Rom monitor:
烧入Flash的一段小程序,可通过串/并
/ethernet口调试
48微迪培训中心
深圳市微迪软件技术有限公司
仿真器与调试器的历史
BDM
背景调试模式,由motorola提出,把相应调试
微码放入处理器,使用高速串口进行访问。
(rom monitor的进一步扩展)
JTAG
边界扫描协议,是IEEE规范,目前是主流。使
外界可以访问ASIC内部寄存器的技术。
49微迪培训中心
深圳市微迪软件技术有限公司
仿真器与调试器的历史
BDM&JTAG调试器,与仿真器的区别。
同样能够直接控制处理器硬件,在单板的硬件
调试能力比rom monitor强。
价格便宜/连接方便
仿真器使用仿真内存,调试器需要目标板。
仿真器支持硬件断点能力强
50微迪培训中心
深圳市微迪软件技术有限公司
ARM指令集与体系实践
ARM4510启动汇编代码
工作模式切换
中断矢量表的设置
寄存器体系结构
内存/IO访问实例
51微迪培训中心
下午:ARM开发实战
基于Samsung S3c4510处理器
微迪嵌入式培训中心 52
s3c4510的内存REMAP
演示如何把中断矢量表remap到RAM区间
微迪嵌入式培训中心 53
S3c4510的在线FLASH烧写
微迪嵌入式培训中心 54