gao****com
在《GR551x开发者指南》文档中的 “BLE_Stack_IRQ、BLE_SDK_IRQ与Application的调度机制”这一节里,说 SDK_Folder\toolchain\gr551x\source\system_gr55xx.c中的system_priority_init()设置了系统各模块默认的中断优先级。但实际打开1.6.12版本SDK包中对应文件里却没找到相关语句或函数说明。能否可以说明下SDK里面默认配置的中断优先级
Barton
你好,默认的中断优先级配置如下所示:
#define PRIORITY_GROUP_NUMBER (3)
void system_priority_init(void)
{
NVIC_SetPriorityGrouping(PRIORITY_GROUP_NUMBER);
for(uint32_t i = 0; i < MAX_NUMS_IRQn; i++)
{
NVIC_SetPriority((IRQn_Type)i, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 8, 0));
}
NVIC_SetPriority(SVCall_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 0, 0));
NVIC_SetPriority(BLE_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 2, 0));
NVIC_SetPriority(BLESLP_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 2, 0));
NVIC_SetPriority(DMA_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 6, 0));
NVIC_SetPriority(UART0_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 10, 0));
NVIC_SetPriority(UART1_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 10, 0));
NVIC_SetPriority(TIMER0_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 12, 0));
NVIC_SetPriority(TIMER1_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 12, 0));
NVIC_SetPriority(DUAL_TIMER_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 12, 0));
NVIC_SetPriority(SLPTIMER_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 12, 0));
NVIC_SetPriority(PendSV_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 15, 15));
NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 15, 15));
NVIC_SetPriority(BLE_SDK_IRQn, NVIC_EncodePriority(PRIORITY_GROUP_NUMBER, 15, 15));
}后续我们会对相应说明进行优化完善,非常感谢您的提问。
打开微信,使用“扫一扫”即可关注