中级会员
 
- 积分
- 226
- 金钱
- 226
- 注册时间
- 2012-3-11
- 在线时间
- 31 小时
|
例程中有如下函数用来配置外部中断的优先级
MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group)
但是可以看到系统异常时如下定义
#define SystemHandler_NMI ((u32)0x00001F) /* NMI Handler */
#define SystemHandler_HardFault ((u32)0x000000) /* Hard Fault Handler */
#define SystemHandler_MemoryManage ((u32)0x043430) /* Memory Manage Handler */
#define SystemHandler_BusFault ((u32)0x547931) /* Bus Fault Handler */
#define SystemHandler_UsageFault ((u32)0x24C232) /* Usage Fault Handler */
#define SystemHandler_SVCall ((u32)0x01FF40) /* SVCall Handler */
#define SystemHandler_DebugMonitor ((u32)0x0A0080) /* Debug Monitor Handler */
#define SystemHandler_PSV ((u32)0x02829C) /* PSV Handler */
#define SystemHandler_SysTick ((u32)0x02C39A) /* SysTick Handler */
都是32位的 我也查过手册,这些异常确实不能用上面的函数来配置优先级
后来找到是用System Exceptions Priority-Level Register
即配置文件的SCB>-egacySans-Bold;color:red;font-size:12pt;mso-fareast-font-family:宋体;mso-ansi-language:EN-US;mso-fareast-language:ZH-CN;mso-bidi-language:AR-SA;mso-bidi-font-family egacySans-Bold;" lang="EN-US">SHPR 寄存器 其中也是4bit配置一个异常的优先级
疑问如下:其配置方法是不是和外部中断一样,也是依照优先级分组来配置
比如优先级分组设置为2,那么他是不是也是一样用高2为来配置
抢断优先级,低两位用来配置子优先级
还是另外的配置方法?
|
|