Cortex-M3 异常和中断.docx

Cortex-M3 异常和中断.docx

ID:28493986

大小:29.85 KB

页数:9页

时间:2018-12-10

Cortex-M3 异常和中断.docx_第1页
Cortex-M3 异常和中断.docx_第2页
Cortex-M3 异常和中断.docx_第3页
Cortex-M3 异常和中断.docx_第4页
Cortex-M3 异常和中断.docx_第5页
资源描述:

《Cortex-M3 异常和中断.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、0.前言本文想解决的问题有:·如何开启、关闭中断·如何开启、关闭异常·LPC177x/8x支持的中断优先级个数·复位后,异常/中断默认的优先级·如何设置异常/中断的优先级·什么是优先级组,如何设置优先级组,复位后的优先级组1.Cortex-M3的异常/中断屏蔽寄存器组注:只有在特权级下,才允许访问这3个寄存器。名字功能描述PRIMASK只有单一比特的寄存器。置为1后,就关掉所有可屏蔽异常,只剩下NMI和硬Fault可以响应。默认值是0,表示没有关闭中断。FAULTMASK只有单一比特的寄存器。置为1后,只有NMI可以响应。默认值为0

2、,表示没有关异常。BASEPRI该寄存器最多有9位(由表达优先级的位数决定)。定义了被屏蔽优先级的阈值。当它被设置为某个值后,所有优先级号大于等于此值的中断都被关。若设置成0,则不关断任何中断,0为默认值。注:寄存器BASEPRI的有效位数受系统中表达优先级的位数影响,如果系统中只使用3个位来表达优先级,则BASEPRI有意义的值仅为0x00、0x20、0x40、0x60、0x80、0xA0、0xC0和0xE0使用MRS/MSR指令访问这三个寄存器,比如:MRSR0,BASEPRI;读取BASEPRI到R0中MSRBASEPRI,R

3、0;将R0数据写入到BASEPRI中为了快速的开关中断,CM3还专门设置了一条CPS指令,有四种用法:CPSIDI;PRIMASK=1,关中断CPSIEI;PRIMASK=0,开中断CPSIDF;FAULTMASK=1,关异常CPSIEF;FAULTMASK=0,开异常CMSIS-M3微控制器软件接口标准中的core_cm3.h给出了开关中断或异常的函数:1.1开/关中断1:/**2:*@briefSetthePriorityMaskvalue3:*4:*@parampriMaskPriMask5:*6:*Setthepriorit

4、ymaskbitintheprioritymaskregister7:*/8:static__INLINEvoid__set_PRIMASK(uint32_tpriMask)9:{10:registeruint32_t__regPriMask__ASM("primask");11:__regPriMask=(priMask);12:}    使用__set_PRIMASK(1)关闭中断;__setPRIMASK(0)开启中断。    一些说明:__INLINE是宏定义,对应__inline,这是keil编译器自定义关键字,表示这个函

5、数是内联函数,但并不是强制性内联,编译器最终决定是否内联。    __ASM(“primask”):__ASM也是一个宏,对应__asm,这是keil编译器自定义关键字,关于这个关键字,有相当多的用法,可以在C中内嵌汇编语言、内嵌汇编函数、指定汇编标号以及本代码中的声明一个已命名寄存器变量。这里,已命名的寄存器是("primask"),也就是说寄存器变量__regPriMask等同于编译器已命名的primask。语法为:registertypevar-name__asm(reg);keil编译器已命名的寄存器变量为:寄存器__asm

6、修饰的字符串处理器APSR"apsr"AllprocessorsCPSR"cpsr"AllprocessorsBASEPRI"basepri"Cortex-M3,Cortex-M4BASEPRI_MAX"basepri_max"Cortex-M3,Cortex-M4CONTROL"control"Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4DSP"dsp"Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4EAPSR"eapsr"Cortex-M0,Cortex-M1,Co

7、rtex-M3,Cortex-M4EPSR"epsr"Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4FAULTMASK"faultmask"Cortex-M3,Cortex-M4IAPSR"iapsr"Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4IEPSR"iepsr"Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4IPSR"ipsr"Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4MSP"msp"Corte

8、x-M0,Cortex-M1,Cortex-M3,Cortex-M4PRIMASK"primask"Cortex-M0,Cortex-M1,Cortex-M3,Cortex-M4PSP"psp"Cortex-M0,Cortex-M1,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。