文档首页 > > 开发指南> 内核开发指南> 中断机制> 编程实例

编程实例

分享
更新时间:2020/06/24 GMT+08:00

实例描述

本实例实现如下功能

  1. 初始化硬件中断
  2. 中断注册
  3. 触发中断
  4. 查看打印结果

编程示例

前提条件:

  • 在los_config.h中,将LOSCFG_PLATFORM_HWI定义为YES。
  • 在los_config.h中,设置最大硬中断个数OS_HWI_MAX_USED_NUM 。

说明:目前的中断测试代码提供了基本框架,中断硬件初始化代码请用户根据开发板硬件情况在Example_Exti0_Init()函数中自行实现。

代码实现如下:

static void Example_Exti0_Init()
{
    /*add your IRQ init code here*/

    return;

}

static VOID User_IRQHandler(void)
{
    dprintf("\n User IRQ test\n");
    //LOS_InspectStatusSetByID(LOS_INSPECT_INTERRUPT,LOS_INSPECT_STU_SUCCESS);
    return;

}

UINT32 Example_Interrupt(VOID)
{
    UINTPTR uvIntSave;
    uvIntSave = LOS_IntLock();
    
    Example_Exti0_Init();
    
    LOS_HwiCreate(6, 0,0,User_IRQHandler,0);//创建中断
    
    LOS_IntRestore(uvIntSave);
    
    return LOS_OK;
}

结果验证

完整实例

los_api_interrupt.c

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问