1、周立功单片机欢迎同学从不同角度来探讨欢迎同学从不同角度来探讨周立功单片机使用与开发的产品(以太网串口转换模块)周立功单片机1.从的角度看:使用ARM的模块体积更小巧、功能更全、速度更快、价格相对更高;2.从的角度看:ARM芯片具有丰富外设,减少外部器件可以增加系统可靠性,降低硬件设计上的难度。ARM速度快,可以弥补算法的上不足,使程序编写更轻松。3.从的角度看:使用ARM的模块,产品附加值更高,利润更高。与开发产品的比较周立功单片机液晶显示键盘输出控制原理图1234567890ECKEYVDD3.3nTRSTTDITMSTCKRTCKTDOnRSTR284.7KC?C?XTAL1XTAL2X1
2、10MHzC?C15100uFC1100uFVIN3GND1VOUT2U1SPX1117M3-3.3C?R13.3KLED1POWERL110uHL210uHC?C?+5VP0.21/PWM5/AD1.6/CAP1.31P0.22/AD1.7/CAP0.0/MAT0.02RTXC13P1.19/TRACEPKT34RTXC25Vss6V3a7P1.18/TRACEPKT28P0.25/AD0.4/Aout9P0.26/AD0.510P0.27/AD0.0/CAP0.1/MAT0.111P1.17/TRACEPKT112P0.28/AD0.1/CAP0.2/MAT0.213P0.29/AD0.2
3、/CAP0.3/MAT0.314P0.30/AD0.3/EINT3/CAP0.015P1.16/TRACEPKT016P0.3117Vss18P0.0/TxD0/PWM119P1.31/TRST20P0.1/RxD0/PWM3/EINT021P0.2/SCL0/CAP0.022V323P1.26/RTCK24Vss25P0.3/SDA0/MAT0.0/EINT126P0.4/SCK0/CAP0.1/AD0.627P1.25/EXTIN028P0.5/MISO0/MAT0.1/AD0.729P0.6/MOSI0/CAP0.2/AD1.030P0.7/SSEL0/PWM2/EINT231P1.24
4、/TRACECLK32P0.8/TxD1/PWM4/AD1.133P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.0/AD1.235P1.23/PIPESTAT236P0.11/CTS1/CAP1.1/SCL137P0.12/DSR1/MAT1.0/AD1.338P0.13/DTR1/MAT1.1/AD1.439P1.22/PIPESTAT140P0.14/DCD1/EINT1/SDA141Vss42V343P1.21/PIPESTAT044P0.15/RI1/EINT2/AD1.545P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/
5、SCK1/MAT1.247P1.20/TRACESYNC48Vbat49Vss50V351P1.30/TMS52P0.18/CAP1.3/MISO1/MAT1.353P0.19/MAT1.2/MOSI1/CAP1.254P0.20/MAT1.3/SSEL1/EINT355P1.29/TCK56RESET57P0.2358Vssa59P1.28/TDI60XTAL261XTAL162Vref63P1.27/TDO64U2LPC2138123456789J1CON9C?C?XTAL1XTAL2X232.768KHzVDD3.3V3.3AMR1NC2PFI3GND4PFO5RST6RST7VCC8U
6、9MAX708SRSTVCCS10RSTLCM12345678910111213141516A?LCM2.4VD?DIODER284.7KR284.7KR284.7KR284.7KR284.7KVDD3.3VDD3.3Q78550K?R284.7KQ78550K?R284.7KQ78550K?R284.7KQ78550K?+5VR284.7KVSSAPortPortPortPortPortPortPortPort1234J2ISPCOMISPTXDISPRXDPOWERINGND12J3EISPEISPGNDR284.7KR284.7KR284.7KLPC2132最小系统复位系统时钟程序下载系
7、统调试电源周立功单片机1.对比已经掌握的CPU类型来:体系结构和指令系统是一款处理器的灵魂,对它们的细致了解,对于应用和操作系统的移植都有很大的益处;2.选择合适的芯片来:选择一款简单的ARM芯片,可以降低入门难度而不影响对ARM的学习。3.选择合适的开发板来:理论联系实践可以更高效快速的掌握理论知识以及软硬件开发流程等。4.选择难度合适的:的学习周立功单片机设计最小系统建立开发环境(软件、硬件)HelloWorld程序概述产品开发ARM的特性了解ARM内部结构ARM程序的组成了解ARM指令系统掌握部分ARM指令选择合适的ARM芯片充分了解该ARM芯片入门级别了解级别周立功单片机ARM7体系结
8、构(第二版)周立功单片机第2章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/O周立功单片机第2章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/O周立功单片机2.1 ARM简介 ARM公司简介 ARM是Ad
9、vanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器。公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。周立功单片机2.1 ARM简介 ARM公司简介系统和产品设计公司系统和产品设计公司芯片设计公司芯片设计公司周立功单片机ARM 已成为中国嵌入式开发首选周立功单片机原理图1234567890ECKEYVDD3.3nTRSTTDITMSTCKRTCKTDOnRSTR284.7KC?C?XTAL1XTAL2X110MHzC?C15100uFC1100uF
10、VIN3GND1VOUT2U1SPX1117M3-3.3C?R13.3KLED1POWERL110uHL210uHC?C?+5VP0.21/PWM5/AD1.6/CAP1.31P0.22/AD1.7/CAP0.0/MAT0.02RTXC13P1.19/TRACEPKT34RTXC25Vss6V3a7P1.18/TRACEPKT28P0.25/AD0.4/Aout9P0.26/AD0.510P0.27/AD0.0/CAP0.1/MAT0.111P1.17/TRACEPKT112P0.28/AD0.1/CAP0.2/MAT0.213P0.29/AD0.2/CAP0.3/MAT0.314P0.30/
11、AD0.3/EINT3/CAP0.015P1.16/TRACEPKT016P0.3117Vss18P0.0/TxD0/PWM119P1.31/TRST20P0.1/RxD0/PWM3/EINT021P0.2/SCL0/CAP0.022V323P1.26/RTCK24Vss25P0.3/SDA0/MAT0.0/EINT126P0.4/SCK0/CAP0.1/AD0.627P1.25/EXTIN028P0.5/MISO0/MAT0.1/AD0.729P0.6/MOSI0/CAP0.2/AD1.030P0.7/SSEL0/PWM2/EINT231P1.24/TRACECLK32P0.8/TxD1/P
12、WM4/AD1.133P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.0/AD1.235P1.23/PIPESTAT236P0.11/CTS1/CAP1.1/SCL137P0.12/DSR1/MAT1.0/AD1.338P0.13/DTR1/MAT1.1/AD1.439P1.22/PIPESTAT140P0.14/DCD1/EINT1/SDA141Vss42V343P1.21/PIPESTAT044P0.15/RI1/EINT2/AD1.545P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P1.20/TRA
13、CESYNC48Vbat49Vss50V351P1.30/TMS52P0.18/CAP1.3/MISO1/MAT1.353P0.19/MAT1.2/MOSI1/CAP1.254P0.20/MAT1.3/SSEL1/EINT355P1.29/TCK56RESET57P0.2358Vssa59P1.28/TDI60XTAL261XTAL162Vref63P1.27/TDO64U2LPC2138123456789J1CON9C?C?XTAL1XTAL2X232.768KHzVDD3.3V3.3AMR1NC2PFI3GND4PFO5RST6RST7VCC8U9MAX708SRSTVCCS10RSTLC
14、M12345678910111213141516A?LCM2.4VD?DIODER284.7KR284.7KR284.7KR284.7KR284.7KVDD3.3VDD3.3Q78550K?R284.7KQ78550K?R284.7KQ78550K?R284.7KQ78550K?+5VR284.7KVSSAPortPortPortPortPortPortPortPort1234J2ISPCOMISPTXDISPRXDPOWERINGND12J3EISPEISPGNDR284.7KR284.7KR284.7KARM7处理器核外部中断TIMER0/1ADC通用I/OPWM0实时时钟I2C串行接口S
15、PI串行接口UART0&1CAN看门狗定时器系统控制系统功能周立功单片机2.1 ARM简介 ARM体系结构 ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:寄存器:具有更多的通用寄存器;装载/保存结构:处理器操作只针对寄存器的内容,而不直接对存储器进行操作;流水线:将指令处理过程分为多步,提高效率;指令长度:统一长度的指令域,简化指令译码。周立功单片机2.1 ARM简介 ARM体系结构ARM体系结构的特点,使其非常适用于嵌入式系统:低功耗:对于电池供电的设备,功耗无疑是重点;高代码密度:小的代码量可以减小存储成本;小面积:芯片内可
16、以集成更多的外设,使系统硬件更紧凑简洁;方便的硬件调试技术:降低开发难度和成本。周立功单片机2.1 ARM简介 各ARM体系结构版本 ARM体系结构从最初开发到现在有了巨大的改进,并仍在完善和发展。为了清楚的表达每个ARM应用实例所使用的指令集,ARM公司定义了6种主要的ARM指令集体系结构版本,以版本号V1V6表示。其中V1V3已经停止使用,常用的ARM7为V4版本。周立功单片机2.1 ARM简介 各ARM体系结构版本V4 不在为了与以前的版本兼容而支持26位体系结构,并明确了哪些指令会引起未定义指令异常发生,它相对V3版本作了以下的改进:增加半字加载/存储指令;字节和半字的加载和符号扩展指
17、令;增加使用用户模式寄存器的。周立功单片机2.1 ARM简介 各ARM体系结构版本V5 在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并并增加了指令,具体如下:改进了ARM/Thumb状态之间的切换效率;允许非T变量和T变量一样,使用相同的代码生成技术;增加计数前导零指令和软件断点指令;对乘法指令如何设置标志作了严格的定义。周立功单片机2.1 ARM简介 ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10Cor
18、tex-M3XscaleARM11周立功单片机2.1 ARM简介 ARM处理器核简介ARM7 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。周立功单片机2.1 ARM简介 ARM处理器核简介ARM9 该系列包括ARM9TDMI、ARM920T、ARM926和带有高速缓存处理器宏单元
19、的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。PHILIPS最近推出的LPC3180就是基于ARM926的微处理器,即将推出的开发套件SmartARM3180支持Linux 2.4、WinCE4.2,还有PC104等工控机系列产品。ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。周立功单片机2.1 ARM简介 ARM处理器核简介Cortex-M3 该系列主要针对MCU市场,改进了代码密度,减少了中断延迟,并有更低的功耗,支持Thumb-2指令集。开发套件:Keil RealView(包含ULINK仿真器),支持ARM7、ARM9以及CortexM3,ADS将
20、停止支持CortexM3,预计市场上第一颗基于CortexM3的MCU将于第四季度上市。周立功单片机第2章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/O周立功单片机2.2 ARM7TDMI 简介 ARM7TDMI基于ARM体系结构V4版本,是目前低端但非常流行的ARM核,具有非常好的性能-功耗比。应用很广泛,其最显著的应用为数字移动电话。注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、R
21、OM、片内外设组合在一起才能构成现实的芯片。周立功单片机2.2 ARM7TDMI 简介 ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE观察硬件;ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致;ARM7 T D M I-S周立功单片机2.2 ARM7TDMI 简介 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用
22、门的数量也很少。它属于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。周立功单片机2.2 ARM7TDMI 三级流水线 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指译码执行周立功单片机2.2 ARM7TDMI 三级流水线正在执行的指令正在译码的指令正在预取的指令内核流水线 LDR R0,AddInstr STR R0,NextIns
23、tr SUB R1,R1,#1 .ADD R1,R1,#1(1)(2)(4)(3)源程序周立功单片机 LDR R0,AddInstr STR R0,NextInstr SUB R1,R1,#1 .ADD R1,R1,#1(1)(2)(4)(3)源程序 LDR R0,AddInstr STR R0,NextInstr SUB R1,R1,#1 .ADD R1,R1,#1(1)(2)(4)(3)2.2 ARM7TDMI 三级流水线内核流水性1.从地址(1)预取指;执行译码预取周立功单片机 LDR R0,AddInstr STR R0,NextInstr SUB R1,R1,#1 .ADD R1,R
24、1,#1(1)(2)(4)(3)LDR R0,AddInstr STR R0,NextInstr SUB R1,R1,#1 .ADD R1,R1,#1(1)(2)(4)(3)2.2 ARM7TDMI 三级流水线内核流水性1.从地址(1)预取指;执行译码预取2.从地址(2)预取指,“LDR”指令进入译码阶段;周立功单片机 LDR R0,AddInstr STR R0,NextInstr SUB R1,R1,#1 .ADD R1,R1,#1(1)(2)(4)(3)LDR R0,AddInstr STR R0,NextInstr SUB R1,R1,#1 .ADD R1,R1,#1(1)(2)(4)
25、(3)2.2 ARM7TDMI 三级流水线内核流水性1.从地址(1)预取指;执行译码预取2.从地址(2)预取指,“LDR”指令进入译码阶段;3.从地址(3)预取指,“STR”指令进入译码阶段,同时“LDR”指令进入执行阶段;周立功单片机2.2 ARM7TDMI 存储器访问 ARM7TDMI处理器使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。数据可以是字节(8位)、半字(16位)或者字(32位)。周立功单片机字节字节字节字节地址:AA+1A+2A+32.2 ARM7TDMI 存储器访问半字半字字半字:连续的两字节
26、数据构成一个半字;字:连续的四字节数据构成一个字;周立功单片机字节字节字节字节地址:00b01b10b11b2.2 ARM7TDMI 存储器访问半字对齐:当数据的起始地址为偶数时;字对齐:当数据的起始地址可以被4整除时;半字对齐字对齐半字对齐周立功单片机字节字节字节字节地址:0 x000 x010 x100 x112.2 ARM7TDMI 存储器访问Thumb指令为半字长度,必须按半字对齐存放;ARM指令为字长度,必须按字对齐存放。半字对齐字对齐半字对齐周立功单片机数数据据数数据据数数据据数数据据数数据据数数据据0 x40070 x400F0 x40170 x401F地址:0 x4000地址:
27、0 x4008地址:0 x4010地址:0 x401800b01b10b11b00b01b10b11b对齐存放的数据未对齐存放的数据2.2 ARM7TDMI 存储器访问周立功单片机第2章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/O周立功单片机 2.3 ARM7TDMI的模块和内核框图CPBCPACPnICPTBITCPSEQCPnMREQCPnOPCCPnTRAN STRANS1:0 PROT1
28、:0 SIZE1:0 WRITEABORTRDATA31:0WDATA31:0ADDR31:0 DBGTDODBGnTDO E NDBGnTRS TDBGTDIDBGTMSDBGTCKE NDBGCOMM T XDBGCOMM R XDBGRNG 0 DBGRNG 1 DBGENDBGEXT 0 DBGEXT 1 DBGnEXE CDBGACKDBGBREA KDBGRQLOCKCFGBIGE N DnRESETnFIQnIRQCLKENCLKDBGINST RVALIDARM7TDM I-SDMORE同步的Em bededICE-RT扫描调试访问 端口存储器接口存储器管理接 口协处理器接口时
29、钟中断总线控制仲裁调试处理器周立功单片机 2.3 ARM7TDMI的模块和内核框图CPBCPACPnICPTBITCPSEQCPnMREQCPnOPCCPnTRAN STRANS1:0 PROT1:0 SIZE1:0 WRITEABORTRDATA31:0WDATA31:0ADDR31:0 DBGTDODBGnTDO E NDBGnTRS TDBGTDIDBGTMSDBGTCKE NDBGCOMM T XDBGCOMM R XDBGRNG 0 DBGRNG 1 DBGENDBGEXT 0 DBGEXT 1 DBGnEXE CDBGACKDBGBREA KDBGRQLOCKCFGBIGE N D
30、nRESETnFIQnIRQCLKENCLKDBGINST RVALIDARM7TDM I-SDMORE同步的Em bededICE-RT扫描调试访问 端口存储器接口存储器管理接 口协处理器接口时钟中断总线控制仲裁调试处理器Em beddedIC E-R TCPUDBG R NG(0)DBG R NG(1)DBG EXT(0)DBG EXT(1)TAPADDR 31:0LO C KW R ITESIZE1:0PR O T1:0TR ANS1:0W DATA31:0R DATA31:0DBG TDIDBG nTR STDBG TM SDBG TC K ENDBG TDO宏单元控制器协处理器接口信
31、号12Em beddedICE-RT周立功单片机 2.3 ARM7TDMI的模块和内核框图Em beddedIC E-R TCPUDBG R NG(0)DBG R NG(1)DBG EXT(0)DBG EXT(1)TAPADDR 31:0LO C KW R ITESIZE1:0PR O T1:0TR ANS1:0W DATA31:0R DATA31:0DBG TDIDBG nTR STDBG TM SDBG TC K ENDBG TDO宏单元控制器协处理器接口信号12Em beddedICE-RTEm beddedIC E-R TCPUDBG R NG(0)DBG R NG(1)DBG EXT
32、(0)DBG EXT(1)TAPADDR 31:0LO C KW R ITESIZE1:0PR O T1:0TR ANS1:0W DATA31:0R DATA31:0DBG TDIDBG nTR STDBG TM SDBG TC K ENDBG TDO宏单元控制器协处理器接口信号12Em beddedICE-RT周立功单片机第2章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/O周立功单片机2.5 处
33、理器状态 处理器状态 ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:32位,这种状态下执行的是字方式的ARM指令;:16位,这种状态下执行半字方式的Thumb指令。注意:两个状态之间的切换并不影响处理器模式或寄存器内容。ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。(详见第4章)ARMThumb周立功单片机2.5 处理器状态 处理器状态 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thum
34、b状态之间进行切换(详见第4章),程序如下所示。;从ARM状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号周立功单片机第2章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/O周立功单片机2.6 处理器模式 简介 ARM体系
35、结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。使用这些模式的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。周立功单片机处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式特权模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权异常模式 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式
36、中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式2.6 处理器模式 处理器模式周立功单片机2.6 处理器模式 特权模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式特权模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权异常模式 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进
37、入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。未定义 (und)中止 (abt)管理 (svc)中断 (irq)快中断 (fiq)系统 (sys)周立功单片机2.6 处理器模式 异常模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式特权模式 系统 (sys)用
38、于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权异常模式 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避
39、免异常退出时用户模式的状态不可靠。未定义 (und)中止 (abt)管理 (svc)中断 (irq)快中断 (fiq)周立功单片机2.6 处理器模式 用户和系统模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式特权模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权异常模式 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护
40、在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。系统 (sys)用户 (usr)周立功单片机第2章 目录q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存
41、储器映射I/O周立功单片机2.7 内部寄存器 简介 在ARM7TDMI处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。周立功单片机寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR1
42、3(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器周立功单片机寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R
43、8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13
44、R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_svcCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R1
45、4_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM状态各模式下可以访问的寄存器周立功单片机寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(
46、SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_svcCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12
47、R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。周立功单片机寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiq
48、R13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是
49、完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。周立功单片机寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR1
50、4(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。周立功单片机寄存器类别寄存器