CortexM3寄存器总汇.docx
- 文档编号:8031233
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:207
- 大小:75.70KB
CortexM3寄存器总汇.docx
《CortexM3寄存器总汇.docx》由会员分享,可在线阅读,更多相关《CortexM3寄存器总汇.docx(207页珍藏版)》请在冰豆网上搜索。
CortexM3寄存器总汇
1、应用程序中断及复位控制寄存器AIRCR(0XE000ED0C)
AIRCR-地址0XE000ED0C
域
名称
类型
描述
复位值
[31:
16]
VECTKEY
R/W
注册码(registerkey)。
对寄存器进行写操作时要求在VECTKEY域中写入0x5FA。
否则写入值被忽略。
-
[31:
16]
VECTKEYSTAT
R/W
读取时为0xFA05
-
[15]
ENDIANESS
R
数据的字节顺序位:
1=大端(高位在前)
0=小端(低位在前)
-
[14:
11]
-
-
保留
-
[10:
8]
PRIGROUP
R/W
中断优先级分组域:
PRIGROUP从子优先级中拆分强占式优先级
1表示7位抢占式优先级,1位子优先级
2表示6位抢占式优先级,2位子优先级
3表示5位抢占式优先级,3位子优先级
4表示4位抢占式优先级,4位子优先级
5表示3位抢占式优先级,5位子优先级
6表示2位抢占式优先级,6位子优先级
7表示1位抢占式优先级,7位子优先级
8表示0位抢占式优先级,8位子优先级
PRIGROUP域是一个二进制小数点定位指示器,用于为共用同一抢占级别的异常创建优先级。
它将中断优先级的PRI_n域分成抢占式优先级和子优先级。
二进制小数点是一个偏左值。
即PRIGROUP值代表一个从LSB左边开始的小数值。
这是7:
0的位0。
最低的值不能为0,这取决于为优先级分配的位数以及设备的选择
0
[7:
3]
-
-
保留
-
[2]
SYSRESETREQ
W
让信号在外部系统有效,表示请求复位。
-
[1]
VECTCLRACTIVE
W
清除有效向量位:
1=清除活动NMI、故障和中断的所有状态信息
0=不清除
-
[0]
VECTRESET
W
系统复位位。
将系统复位,调试元件除外:
1=复位系统
0=不复位系统
-
注:
LPC1752支持32个优先级,在周立功程序中不对优先级分组,即无子优先级,只有抢占优先级。
2、LR异常返回值:
EXC_RETURN
域
描述
[31:
4]
0XFFFFFFF
[3]
处理模式:
0:
返回后进入Handler模式;1:
返回后进入线程模式
[2]
堆栈标志位:
0:
从主堆栈中做出栈操作,返回后使用MSP;
1:
从进程堆栈中做出栈操作,返回后使用PSP
[1]
保留,必须为0
[0]
处理器状态位:
0:
返回到ARM状态;1:
返回到Thumb状态。
在Cortex-M3中必须为1
3、复位源标识寄存器RSID(0x400FC180)
RSID-地址0x400FC180
域
名称
描述
[0]
POR
上电复位(POR)信号有效时该位置位。
并清零该寄存器中其它所有的位。
但是如果上电复位信号撤销后另外一个复位信号(如外部复位)仍然保持有效,则这个复位信号对应的位置位。
POR位不受其它任何复位源的复位影响。
注:
当VDD(3V3)引脚电平超过门限值(1V左右)时POR信号有效。
[1]
EXTR
RESET信号有效时该位置位。
该位由上电复位来清零,但不受WDT或掉电检测(BOD)复位的影响
[2]
WDTR
当看门狗定时器溢出和看门狗模式寄存器的WDTRESET位为1时,该位置位。
该位可由其它任何一个复位源清零
[3]
BODR
当的电源降到低于时,该位置位;
如果VDD电压从降低到然后又回升,则该位置位;
如果VDD(3V3)电压从降低到,接着再下降到POR有效的电压(通常为1V),则该位清零;
如果VDD(3V3)电压继续从1V以下上升到以上,则该位也将置位;该位不受外部复位或看门狗复位影响;
注:
只有在复位发生且位POR=0时,BODR位才指示VDD(3V3)电压是否
[7:
4]
-
保留。
用户软件不要向其写入1。
从保留位读出的值未被定义
注:
上述这些标志位通过写"1"清除。
上电复位的优先级最高,可清除其它复位标志;面看门狗复位优先级最低,其它任何一类复位都可清除它的标志。
掉电复位和外部复位优先级相同,因而不能清除对方标志。
4、系统控制和状态寄存器SCS-(0x400FC1A0)
系统控制和状态寄存器SCS–地址0x400FC1A0
位
符号
值
描述
访问
复位值
3:
0
-
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
-
NA
4
OSCRANGE
0
1
主振荡器范围选择
0:
主振荡器的频率范围为1MHz~20MHz;
1:
主振荡器的频率范围为15MHz~24MHz
R/W
0
5
OSCEN
0
1
主振荡器使能:
0:
主振荡器被禁能;
1:
主振荡器被使能,且在正确的外部电路连接到XTAL1和XTAL2引脚的情况下启动。
R/W
0
6
OSCSTAT
0
1
主振荡器状态:
0:
主振荡器不稳定,不能用作时钟源;
1:
主振荡器已稳定,能够用作时钟源;主振荡器必须通过OSCEN位使能。
RO
0
31:
7
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
-
NA
5、时钟源选择寄存器CLKSRCSEL–(0x400FC10C)
时钟源选择寄存器CLKSRCSEL地址0x400FC10C
位
符号
值
描述
复位值
1:
0
CLKSRC
00
01
10
11
如下选择PLL0的时钟源:
00:
选择内部RC振荡器作为PLL0时钟源(默认)
01:
选择主振荡器作为PLL0时钟源
10:
选择RTC振荡器作为PLL0时钟源
11:
保留,不使用该值
0
注:
不适当地设置该值,或改变该值的不正确序列都会导致器件不能正确地操作
7:
2
-
0
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
注:
只有在PLL断开连接时,才可更换PLL输入时钟
6、PLL0STAT状态寄存器对应关系图:
7、PLL0控制寄存器PLL0CON–(0x400FC080)
PLL0控制寄存器PLL0CON–地址0x400FC080
位
符号
描述
复位值
0
PLLE0
PLL0使能。
当该位为1并且在有效的PLL0馈送之后,该位将激活PLL0并允许其锁定到指定的频率。
(见上图中的振荡器CCO)
0
1
PLLC0
PLL0连接。
在使能和锁定PLL0,即PLLE0和PLLC0都设为1,并后面跟随有效的PLL0馈送序列后,使PLL0作为CPU时钟源、AHB外设的时钟源,以及APB外设的时钟源。
PLL0输出可以用来计时USB子系统(如果频率为48MHz)。
(见上图中的切换开关)
0
31:
2
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
PLL0中的电流控制振荡器CCO的输出为:
275~550MHz
8、PLL0配置寄存器PLL0CFG–(0x400FC084)
PLL0配置寄存器PLL0CFG–地址0x400FC084
位
符号
描述
复位值
14:
0
MSEL0
PLL0倍频器值。
在PLL0频率计算中提供“M”值。
存储在这里的值为M-1。
支持的M值有从6~512的整数值,以及如表所示的值
注:
有些M值硬件并不支持。
有关MSEL0正确值的选取,见“PLL0频率计算”
只有执行正确的PLL馈送序列后生效
0
15
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
23:
16
NSEL0
PLL0预分频器值。
在PLL0频率计算中提供“N”值。
存储在这里的值为N-1,支持的N值范围是1~32
注:
有关NSEL0正确值的选取,见“PLL0频率计算”。
只有执行正确的PLL馈送序列后生效
0
31:
24
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
9、PLL0状态寄存器PLL0STAT–(0x400FC088)
PLL0状态寄存器PLL0STAT–地址0x400FC088
位
符号
描述
复位值
14:
0
MSEL0
读回PLL0倍频器值。
这是PLL0当前使用的值,它比实际的倍频器值少1
0
15
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
23:
16
NSEL0
读回PLL0预分频器值。
这是PLL0当前使用的值,它比实际的分频器值少1
0
24
PLLE0_STAT
读回PLL0使能位。
当该位为1时,PLL0处于激活状态;当该位为0时,PLL0关闭。
当进入掉电模式时,该位自动清零
0
25
PLLC0_STAT
读回PLL0连接位。
当PLLC0和PLLE0都为1时,PLL0作为LPC1700系列Cortex-M3微控制器的时钟源被连接;当PLLC0或PLLE0位为0时,PLL0被旁路,当进入掉电模式时,该位自动清零
0
26
PLOCK0
反映PLL0的锁定状态。
当该位为0时,PLL0未锁定;当该位为1时,PLL0锁定到指定的频率。
当使能PLL0或改变参数时,PLL0在新的条件下需要一些时间来完成锁定,可通过监控PLOCK0位来确定连接PLL0的时间。
0
31:
27
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
10、PLLE0和PLLC0的组合表
PLLC0
PLLE0
PLL功能
0
0
PLL0被关闭并断开连接。
PLL0的输出时钟与输入时钟相同
0
1
PLL0被激活但是尚未连接。
PLL0可在PLOCK0有效后连接
1
0
与00组合相同。
这样消除了PLL0已被连接但没有使能的可能性
1
1
PLL0被激活且已被连接作为系统时钟源
11、PLL0馈送寄存器PLL0FEED–(0x400FC08C)
PLL0馈送寄存器PLL0FEED–地址0x400FC08C
位
符号
描述
复位值
7:
0
PLL0FEED
PLL0馈送序列必须写入该寄存器才能使PLL0配置和控制寄存器的更改生效
0x00
31:
8
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
11、PLL1控制寄存器PLL1CON–(0x400FC0A0)
PLL0控制寄存器PLL0CON–地址0x400FC0A0
位
符号
描述
复位值
0
PLLE1
PLL1使能。
当该位为1并且在有效的PLL1馈送之后,该位将激活PLL1并允许其锁定到指定的频率。
0
1
PLLC1
PLL1连接。
在使能和锁定PLL1,即PLLE1和PLLC1都设为1,并后面跟随有效的PLL1馈送序列后,使PLL1作为USB子系统的时钟源
0
31:
2
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
PLL1中的电流控制振荡器CCO的输出为:
156~320MHz
12、PLL1配置寄存器PLL1CFG–(0x400FC0A4)
PLL1配置寄存器PLL1CFG–地址0x400FC0A4
位
符号
描述
复位值
4:
0
MSEL1
PLL1倍频器值。
在PLL1频率计算中提供“M”值
00000时M=100001时M=200010时M=3……11110时M=3111111时M=32
0
6:
5
PSEL1
PLL1分频器值。
在PLL1频率计算中提供“P”值
00时P=101时P=210时P=411时P=8
0
31:
7
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
13、PLL1状态寄存器PLL1STAT–(0x400FC0A8)
PLL1状态寄存器PLL1STAT–地址0x400FC0A8
位
符号
描述
复位值
4:
0
MSEL1
读回PLL1倍频器值。
这是PLL1当前使用的值
0
6:
5
PSEL1
读回PLL1分频器值。
这是PLL1当前使用的值
0
7
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
8
PLLE1_STAT
读回PLL1使能位。
当该位为1时,PLL1处于激活状态;当该位为0时,PLL1关闭。
当进入掉电模式时,该位自动清零
0
9
PLLC1_STAT
读回PLL1连接位。
当PLLC和PLLE都为1时,PLL1作为微控制器的时钟源被连接;当PLLC或PLLE位为0时,PLL1被旁路,微控制器直接使用振荡器时钟。
当进入掉电模式时,该位自动清零
0
10
PLOCK1
反映PLL1的锁定状态。
当该位为0时,PLL1未锁定;当该位为1时,PLL1锁定为指定的频率
0
31:
11
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
14、PLLE1和PLLC1的组合表
PLLC1
PLLE1
PLL功能
0
0
PLL1被关闭并断开连接。
PLL1的输出时钟与输入时钟相同
0
1
PLL1被激活但是尚未连接。
PLL1可在PLOCK1有效后连接
1
0
与00组合相同。
这样消除了PLL1已被连接但没有使能的可能性
1
1
PLL1被激活且连接。
PLL1作为USB子系统的时钟源
15、PLL1馈送寄存器PLL1FEED–(0x400FC0AC)
PLL1馈送寄存器PLL1FEED–地址0x400FC0AC
位
符号
描述
复位值
7:
0
PLL1FEED
PLL1馈送序列必须写入该寄存器才能使PLL1配置和控制寄存器的更改生效
0x00
31:
8
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
16、CPU时钟配置寄存器CCLKCFG–(0x400FC104)
PU时钟配置寄存器CCLKCFG–地址0x400FC104
位
符号
描述
复位值
7:
0
CCLKSEL
从PLL0输出中选择建立CPU时钟(CCLK)的分频值
分频值只能是0和奇数值(1、3、5…,255)并且可以在编程CCLKSEL位时使用
注:
当置位CCLKSEL位时使用偶数值(2、4、6…,254)可能会导致操作错误
0:
不允许,由于CPU时钟频率不能大于100MHz(注:
CCO为255~550MHz)
1:
不允许,由于CPU时钟频率不能大于100MHz(注:
CCO为255~550MHz)
2:
对PLL0输出进行3分频,产生CUP时钟(CCLK)
3:
对PLL0输出进行4分频,产生CUP时钟(CCLK)
………
255:
对PLL0输出进行256分频,产生CUP时钟(CCLK)
0x00
31:
8
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
PLL0输出经过分频后可供CPU或USB子系统使用,如果使能PLL1,那么PLL1就作为USB子系统时钟源。
17、USB时钟配置寄存器USBCLKCFG–(0x400FC108)
USB时钟配置寄存器USBCLKCFG–地址0x400FC108
位
符号
描述
复位值
3:
0
USBSEL
注:
该寄存器仅在PLL1禁止时使用。
如果PLL1使能,则其输出自动用作USB时钟源,且必须配置PLL1为USB子系统提供正确的48MHz时钟
从PLL0输出中选择建立精确48MHz的USB时钟的分频值,仅有下面所列值班为可用的PLL0输出分频值:
值为5时:
6分频PLL0输出,此时PLL0输出为288MHz
值为7时:
8分频PLL0输出,此时PLL0输出为384MHz
值为9时:
10分频PLL0输出,此时PLL0输出为480MHz
0x00
31:
4
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义
NA
18、IRC调整寄存器IRCTRIM–(0x400FC1A4)
IRC调整寄存器IRCTRIM–地址0x400FC1A4
位
符号
描述
复位值
7:
0
IRCtrim
IRC调整值。
它控制片内4MHz的IRC频率
0xA0
15:
8
-
保留。
软件必须写0到这些位
NA
19、外设时钟选择寄存器PCLKSEL0–(0x400FC1A8)
外设时钟选择寄存器PCLKSEL0–地址0x400FC1A8
位
符号
描述
复位值
1:
0
PCLK_WDT
WDT的外设时钟选择
00
3:
2
PCLK_TIMER0
TIMER0的外设时钟选择
00
5:
4
PCLK_TIMER1
TIMER1的外设时钟选择
00
7:
6
PCLK_UART0
UART0的外设时钟选择
00
9:
8
PCLK_UART1
UART1的外设时钟选择
00
11:
10
-
保留
NA
13:
12
PCLK_PWM1
PWM1的外设时钟选择
00
15:
14
PCLK_IC0
IC0的外设时钟选择
00
17:
16
PCLK_SPI
SPI的外设时钟选择
00
19:
18
-
保留
NA
21:
20
PCLK_SSP1
SSP1的外设时钟选择
00
23:
22
PCLK_DAC
DAC的外设时钟选择
00
25:
24
PCLK_ADC
ADC的外设时钟选择
00
27:
26
PCLK_CAN1
CAN1的外设时钟选择
00
29:
28
PCLK_CAN2
CAN2的外设时钟选择
00
31:
30
PCLK_ACF
CAN滤波器的外设时钟选择
00
注:
位为00时PCLK_perpheral=CCLK/4;位为01时PCLK_perpheral=CCLK
位为10时PCLK_perpheral=CCLK/2;位为11时PCLK_perpheral=CCLK/8
CAN1、CAN2和CAN滤波部件除外,当选择“11”时,PCLK_CAN1/PCLK1_CAN2/PCLK_ACF=CCLK/6
20、外设时钟选择寄存器PCLKSEL1–(0x400FC1AC)
外设时钟选择寄存器PCLKSEL1–地址0x400FC1AC
位
符号
描述
复位值
1:
0
PCLK_QEI
正交编码器接口的外设时钟选择
00
3:
2
PCLK_GPIOINT
GPIO中断的外设时钟选择
00
5:
4
PCLK_PCB
引脚连接模块的外设时钟选择
00
7:
6
PCLK_IC1
IC1的外设时钟选择
00
9:
8
-
保留
NA
11:
10
PCLK_SSP0
SSP0的外设时钟选择
00
13:
12
PCLK_TIMER2
TIMER2的外设时钟选择
00
15:
14
PCLK_TIMER3
TIMER3的外设时钟选择
00
17:
16
PCLK_UART2
UART2的外设时钟选择
00
19:
18
PCLK_UART3
UART3的外设时钟选择
00
21:
20
PCLK_IC2
IC2的外设时钟选择
00
23:
22
PCLK_IS
IS的外设时钟选择
00
25:
24
-
保留
NA
27:
26
PCLK_RIT
重复中断定时器的外设时钟选择
00
29:
28
PCLK_SYSCON
系统控制模块的外设时钟选择
00
31:
30
PCLK_MC
电机控制PWM的外设时钟选择
00
21、系统控制寄存器SCR–(0xE000ED10)
系统控制寄存器SCR–地址0xE000ED10
位
符号
值
描述
复位值
0
-
-
保留。
不能向该位写1
0
1
SLEEPONEXIT
从处理模式到线程模式是否进入退出睡眠模式。
此位置1使能中断避免应用程序返回空的mian函数
0
0
在线程模式中不睡眠
1
当从ISR返回到线程模式进入睡眠模式或深度睡眠模式
2
SLEEPDEEP
在低功耗模式下选择处理器使用睡眠模式还是深度睡眠模式
0
0
睡眠
1
深度睡眠
3
-
-
保留
0
4
SEVONPEND
发送中断信号。
当有中断进入等待中断模式,中断信号可将CPU从WFE中唤醒。
如果CPU没有等待中断,但是中断信号已经有效,将会在下一个WFE指令后生效。
当然执行SEV指令也可将CPU唤醒
0
0
只有使能的中断才可以将CPU唤醒,没有使能的中断将被忽略
1
所有的中断,包括使能和没有使能的中断都可以将CPU唤醒
31:
5
-
-
保留。
不能向这些位写1
0x00
21、功率模式控制寄存器PCON–(0x400FC0C0)
功率模式控制寄存器PCON–地址0x400FC0C0
位
符号
描述
复位值
0
PM0
功率模式控制位0。
该位控制进入掉电模式。
详细内容见“低功耗模式的编码”。
0
1
PM1
功率模式控制位1。
该位控制进入深度掉电模式。
详细内容见“低功耗模式的编码”。
0
2
BODRPM
掉电低功耗模式。
当BODRPM为1时,掉电检测电路将在芯片进入掉电模式或深度睡眠模式时关断,使功耗进一步降低。
此时,不能使用掉电检测作为掉电模式的唤醒源。
当该位为0时,掉电检测功能在掉电模式和深度睡眠模式中保持有效。
有关掉电检测的详细内容请见“系统控制模块”。
0
3
BOGD
掉电全局禁能。
当BOGD为1时,掉电检测电路一直被完全禁止,且不消耗功率。
当该位为0时,掉电检测电路被使能。
有关掉电检测的详细内容请见“系统控制模块”。
0
4
BORD
掉电复位禁能。
当BORD为1时,低压检测的第二阶段()将不会导致芯片复位。
当BORD为0时,复位被使能。
低压检测的第一阶段()Brown-out中断不受影响。
有关掉电检测的详细内容请见“系统控制模块”。
0
7:
5
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义。
NA
8
SMFLAG
睡眠模式进入标志。
当成功进入睡眠模式时该位置位。
通过向该位写入1由软件将其清零。
0
9
DSFLAG
深度睡眠进入标志。
当成功进入深度睡眠模式时该位置位。
通过向该位写入1由软件将其清零。
0
10
PDFLAG
掉电进入标志。
当成功进入掉电模式时该位置位。
通过向该位写入1由软件将其清零。
0
11
DPDFLAG
深度掉电进入标志。
当成功进入深度掉电模式时该位置位。
通过向该位写入1由软件将其清零。
0
31:
12
-
保留,用户软件不要向其写入1。
从保留位读出的值未被定义。
NA
注:
低功耗模式的编码
1、00:
正如Cortex-M3系统控制寄存器的SLEEPDEEP位所定义,执行WFI或WFE进入睡眠或深度睡眠模式
2、01:
如果Cortex-M3系统控制寄存器的SLEEPDEEP位为1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CortexM3 寄存器 总汇