STM32F40G-EVAL_UC/OS III
micrum官网下载uc/os程序包;
包含文件cotex_M4.h;
UCOS系统,任务切换
OS_CRITICAL_ENTER();
MRS R0, PRIMASK
CPSID 屏蔽了所有中断,除了fault
OS_PRIO OS_PrioGetHighest (void),获取优先级表中,最高的优先级
UCOS系统,添加中断
core将中断向量填入到中断向量数组中,该数组由core管理
BSP_IntVectSet(BSP_INT_ID_OTG_HS, HAL_PCD_IRQHandler_HS);,第一个参数是中断id号,core管理
void BSP_IntVectSet (CPU_DATA int_id,CPU_FNCT_VOID isr)
void BSP_IntHandlerUSART1 (void) { BSP_IntHandler(BSP_INT_ID_USART1); }特定中断都进入了BSP_IntHandler函数,便于core统一管理
BSP_IntHandler (CPU_DATA int_id)
void BSP_IntInit (void)
BSP_IntVectSet(int_id, BSP_IntHandlerDummy);将中断向量数组都设为Dummy,中断都会进入该函数。
所以外设加入系统要注意加如类似下面的两行,不然会进到BSP_IntHandlerDummy(),是无法正确处理中断的:
BSP_IntVectSet(BSP_INT_ID_OTG_HS, HAL_PCD_IRQHandler_HS);
BSP_IntEn(BSP_INT_ID_OTG_HS);