1 Star 0 Fork 1

WilliamArthur / csi_pangu

forked from yocop / csi_pangu 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ck_irq.c 1.78 KB
一键复制 编辑 原始数据 按行查看 历史
shuke 提交于 2020-05-14 14:07 . init version
/*
* Copyright (C) 2017-2019 Alibaba Group Holding Limited
*/
/******************************************************************************
* @file ck_irq.c
* @brief CSI Source File for IRQ Driver
* @version V1.0
* @date 21. Dec 2018
* @vendor csky
* @chip pangu
******************************************************************************/
#include <stdint.h>
#include <csi_core.h>
extern void Default_Handler(void);
extern void (*g_irqvector[])(void);
/**
\brief enable irq.
\param[in] irq_num Number of IRQ.
\return None.
*/
void drv_irq_enable(uint32_t irq_num)
{
#ifdef CONFIG_SYSTEM_SECURE
csi_vic_enable_sirq(irq_num);
#else
csi_vic_enable_irq(irq_num);
#endif
}
/**
\brief disable irq.
\param[in] irq_num Number of IRQ.
\return None.
*/
void drv_irq_disable(uint32_t irq_num)
{
#ifdef CONFIG_SYSTEM_SECURE
csi_vic_disable_sirq(irq_num);
#else
csi_vic_disable_irq(irq_num);
#endif
}
/**
\brief register irq handler.
\param[in] irq_num Number of IRQ.
\param[in] irq_handler IRQ Handler.
\return None.
*/
void drv_irq_register(uint32_t irq_num, void *irq_handler)
{
#if defined(CONFIG_KERNEL_NONE) || defined(CONFIG_SUPPORT_TSPEND)
csi_vic_set_vector(irq_num, (uint32_t)irq_handler);
csi_dcache_clean_invalid();
csi_icache_invalid();
#else
g_irqvector[irq_num] = irq_handler;
#endif
}
/**
\brief unregister irq handler.
\param[in] irq_num Number of IRQ.
\return None.
*/
void drv_irq_unregister(uint32_t irq_num)
{
#if defined(CONFIG_KERNEL_NONE) || defined(CONFIG_SUPPORT_TSPEND)
csi_vic_set_vector(irq_num, (uint32_t)Default_Handler);
csi_dcache_clean_invalid();
csi_icache_invalid();
#else
g_irqvector[irq_num] = (void *)Default_Handler;
#endif
}
1
https://gitee.com/st-lucifer/csi_pangu.git
git@gitee.com:st-lucifer/csi_pangu.git
st-lucifer
csi_pangu
csi_pangu
master

搜索帮助