INTC

简要说明

INTC(Interrupt Controller)中断控制器,将外围设备的合并到系统处理器的中断输出。用于管理外围设备中断的开启关闭、挂起、唤醒、优先级配置、系统中断源读取等。

接口描述

csi_intc_init

void csi_intc_init(void);
  • 功能描述:

    • 初始化中断控制器。
  • 参数:

  • 返回值:

csi_intc_enable_irq

void csi_intc_enable_irq(int32_t IRQn);
  • 功能描述:
    • 在INTC内使能特定设备的中断。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:

csi_intc_disable_irq

void csi_intc_disable_irq(int32_t IRQn);
  • 功能描述:
    • 在INTC内关闭特定设备的中断。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:

csi_intc_get_pending_irq

uint32_t csi_intc_get_pending_irq(int32_t IRQn);
  • 功能描述:
    • 读取INTC的挂起寄存器,并返回指定中断的挂起位。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:
    • 0:当前中断没有挂起
    • 1:当前中断被挂起

csi_intc_set_pending_irq

void csi_intc_set_pending_irq(int32_t IRQn);
  • 功能描述:
    • 设置外部中断的挂起位。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:

csi_intc_clear_pending_irq

void csi_intc_clear_pending_irq(int32_t IRQn);
  • 功能描述:
    • 清除指定外部中断的挂起位。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:

csi_intc_get_wakeup_irq

uint32_t csi_intc_get_wakeup_irq(int32_t IRQn);
  • 功能描述:
    • 读取INTC中的唤醒寄存器,并返回指定中断的挂起位。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:
    • 0:没有设置唤醒中断
    • 1:已设置唤醒唤醒中断

csi_intc_set_wakeup_irq

void csi_intc_set_wakeup_irq(int32_t IRQn);
  • 功能描述:
    • 设置外部中断的中断唤醒位。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:

csi_intc_clear_wakeup_irq

void csi_intc_clear_wakeup_irq(int32_t IRQn);
  • 功能描述:
    • 清除外部中断的中断唤醒位。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:

csi_intc_get_active

uint32_t csi_intc_get_active(int32_t IRQn);
  • 功能描述:
    • 读取指定中断的活跃状态。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:
    • 0:中断未激活
    • 1:中断已激活

csi_intc_set_threshold

void csi_intc_set_threshold(uint32_t VectThreshold, uint32_t PrioThreshold);
  • 功能描述:
    • 设置INTC的中断矢量阈值和中断优先级阈值。
  • 参数:
    • VectThreshold: 中断向量阈值,中断向量号最大值。
    • PrioThreshold:中断优先级阈值,中断优先级最大数值。
  • 返回值:

csi_intc_set_prio

void csi_intc_set_prio(int32_t IRQn, uint32_t priority);
  • 功能描述:
    • 设置外部中断的中断优先级。(部分核心中断的优先级不能设置)
  • 参数:
    • IRQn: 中断向量号。
    • priority:中断优先级。
  • 返回值:

csi_intc_get_prio

uint32_t csi_intc_get_prio(int32_t IRQn);
  • 功能描述:
    • 读取指定中断向量的中断优先级。中断号可以是正数来指定外部(特定于设备的)中断,也可以是负数来指定内部(核心)中断。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:
    • 中断优先级

csi_intc_ack_irq

int csi_intc_ack_irq(int32_t IRQn);
  • 功能描述:
    • 用于系统应答中断,该函数由中断系统内部调用。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:
    • 0:应答成功
    • 1:应答失败

csi_intc_set_attribute

int csi_intc_set_attribute(int32_t IRQn, uint32_t priority, int_trigger_mode_t trigger_mode)
  • 功能描述:
    • 设置中断属性。
  • 参数:
    • IRQn: 中断向量号。
    • priority:中断优先级
    • trigger_mode:中断触发模式,参见trigger_mode定义。
  • 返回值:
    • 0:设置成功
    • 1:设置失败

trigger_mode:

名字 定义 备注
INT_MODE_LOW_LEVEL 低电平触发
INT_MODE_HIGH_LEVEL 高电平触发
INT_MODE_RISING_EDGE 上升沿触发
INT_MODE_FALLING_EDGE 下降沿触发
INT_MODE_DOUBLE_EDGE 任意边沿触发

csi_intc_set_vector

void csi_intc_set_vector(int32_t IRQn, uint32_t handler);
  • 功能描述:
    • 设置中断处理函数。
  • 参数:
    • IRQn: 中断向量号。
    • handler:中断处理函数的地址。
  • 返回值:

csi_intc_get_vector

uint32_t csi_intc_get_vector(int32_t IRQn);
  • 功能描述:
    • 读取中断向量对应的中断处理函数。
  • 参数:
    • IRQn: 中断向量号。
  • 返回值:
    • 中断向量对应的处理函数地址。

results matching ""

    No results matching ""