
初步
的PSoC
5 : CY8C52系列数据表
4.1.1 Cortex-M3的特点
在Cortex- M3 CPU的功能包括:
4 GB的地址空间。预定义的地址区域代码,
数据和外围设备。多总线的效率,同时将
的指令,数据和外设neous访问。
拇指-2指令集,提供ARM级perfor-
曼斯在拇指级别的代码密度。这包括16位和
的32位指令。先进的指令包括:
位字段控制
硬件乘法和除法
饱和
IF-THEN
等待事件和中断
独占访问和阻隔
特殊寄存器的访问
在Cortex- M3不支持ARM指令。
位段的支持。原子位级写入和读出操作。
非对齐数据存储和访问。的连续的存储
不同的字节长度的数据。
两个特权级别的操作(特权和用户)和
两种模式(线程和处理器) 。有些指令只能
可在特权级执行。还有两个栈
指针:主( MSP )和过程(PSP ) 。这些功能
支持运行的一个或多个多任务操作系统
用户级进程。
丰富的中断和系统异常支持。
4.1.2 Cortex-M3的操作模式
在Cortex- M3工作在任何特权级别或用户
电平,并且在任一线程模式或该处理模式。
由于处理方式是在特权级才启用,
实际上只有三种状态,如图
表4-1 。
表4-1 。操作层面
条件
PRIVILEGED
用户
4.1.3 CPU寄存器
在Cortex- M3 CPU寄存器中列出
表4-2 。
注册
R0 - R15都是32位宽。
表4-2 。的Cortex M3 CPU寄存器
注册
描述
R0-R12
通用寄存器R0 -R12没有
特殊的结构上定义的用途。最
指定一个通用的说明
寄存器R0指定-R12 。
低寄存器:寄存器R0 - R7是可接近
sible由指定的一般都说明
通用寄存器。
高寄存器: R8 - R12的存取权限
sible由指定的所有32位指令
通用寄存器;它们不是可以访问该
sible通过所有的16位指令。
R13
R13是堆栈指针寄存器中。这是一个开户
寄存器,两个32位堆栈之间进行切换
指针:主堆栈指针( MSP )和
处理堆栈指针( PSP ) 。而PSP使用
只有当CPU运行在用户级别
线程模式。在MSP被用在所有其他
权限级别和模式。位[ 0:1]的SP
被忽略,并且被认为是0 ,所以在SP是
总是对准一个字( 4字节)边界。
R14是链接寄存器( LR ) 。 LR的存储
当子程序被调用返回地址。
R15是程序计数器( PC) 。 PC的bit 0
被忽略,并且被认为是0 ,所以指示
总是对准一个半字( 2字节)
边界。
程序状态寄存器可分为
三个状态寄存器,要么访问
一起或分开:
应用程序状态寄存器( APSR )
保存程序执行状态位,如
零,进位,负,以位[ 27:31 ] 。
中断程序状态寄存器( IPSR )
持有比特当前异常数[ 0 : 8 ] 。
执行程序状态寄存器( EPSR )
拥有控制位为中断可持续和
的IF-THEN中的位[ 10时十五]和指令
[ 25:26 ] 。位24总是被设置为1 ,以指示
Thumb模式。试图清除它会导致故障
异常。
R14
R15
式xPSR
运行异常处理程序模式
运行主程序线程模式
未使用
线程模式
在用户层中,访问到的某些指令,专用寄存器,
配置寄存器和调试组件被阻塞。
试图访问这些导致故障异常。在优惠可
leged水平,获得所有的指令和寄存器是允许的。
该处理器在处理程序模式在特权运行(总
级)处理时异常,而在线程模式时,
并非如此。
PRIMASK
1位中断屏蔽寄存器。当设置时,
仅允许不可屏蔽中断(NMI)和
硬故障异常。所有其他异常和
中断被屏蔽。
FAULTMASK 1位中断屏蔽寄存器。当设置时,
只允许NMI 。所有其他异常和
中断被屏蔽。
文件编号: 001-55034修订版**
第11页共85
[+ ]反馈