LiteOS学习第七篇——中断管理

来源:互联网 发布:小米的免费网络短信 编辑:程序博客网 时间:2024/05/22 01:51

要开中断管理首先需要在los_config.h中初始化宏定义

#define LOSCFG_PLATFORM_HWI                             YES


在los_hwi.h中有两个数组用来管理中断

LITE_OS_SEC_VEC HWI_PROC_FUNC m_pstHwiForm[OS_M4_VECTOR_CNT]

HWI_PROC_FUNC m_pstHwiSlaveForm[OS_M4_VECTOR_CNT]


当系统调用osHwiInit()函数后会把m_pstHwiForm初始化,

其中LosAdapIntInit会把m_pstHwiForm地址给中断向量指针



那么我们在调用LOS_HwiCreate函数时就可以把相应的中断入口函数赋值给m_pstHwiSlaveForm

osInterrupt赋值给m_pstHwiForm

最终中断来时先执行osInterrupt 再在osInterrupt中调用相应的中断函数


其中在注意uwHwiNum ,它传到osSetVector是会加OS_M4_SYS_VECTOR_CNT的

#define osSetVector(uwNum, pfnVector)       \
    m_pstHwiForm[uwNum + OS_M4_SYS_VECTOR_CNT] = osInterrupt;\
    m_pstHwiSlaveForm[uwNum + OS_M4_SYS_VECTOR_CNT] = pfnVector;


#define HWI_NUM_INT50 (53-OS_M4_SYS_VECTOR_CNT)

原创粉丝点击