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);

 

posted @ 2019-04-28 21:43  得一寸  阅读(446)  评论(0编辑  收藏  举报