GIC2.0 发送核间中断

GIC2.0 通过操作 GICD_SGIR(0xf00)寄存器发送软中断

 

TargetListFilter 位设置 0 表示转发中断到 CPUTargetList 位所指定的核上:

 

SGIINTID 位设置需要发送的中断号 0-15。

 

因此发送软中断接口实现如下:

static VOID  armGicV1RaiseSoftIrq (UINT64  ullCpuId, ULONG  ulVector)
{
    ULONG   ulBase;
    UINT32  uiVal;

    ulBase = GIC_DIST_BASE_GET();            /*  获取 GICD 基址              */

    KN_SMP_WMB();


    uiVal = (0 << 24) | (UINT32)((1 << ullCpuId) << 16) | (UINT32)ulVector;
    write32(uiVal, ulBase + GICD_SGIR);
}

在 SylixOS 上接收核注册对应中断的服务函数即可:

static irqreturn_t  __IsrFunc(PVOID  pvArg, ULONG  ulVector)
{
    /*
     * do something
     */
    return  (LW_IRQ_HANDLED);
}

    PVOID arg = NULL;
    ULONG softirq_id = 4;
 
    API_InterVectorConnect(softirq_id,
                           (PINT_SVR_ROUTINE)__IsrFunc,
                           (PVOID)arg,
                           "soft_irq_4");
    API_InterVectorEnable(softirq_id);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GIC-400 中断对照表是用于指导中断控制器与处理器之间的中断信号传递的参考文档。在计算机系统中,中断是处理器接收到某种事件或外设请求后暂停当前任务并转为执行其他任务的一种机制。中断对照表主要是为了在处理器和中断控制器之间建立一个映射关系,使得处理器能够正确识别和响应不同的中断请求。 GIC-400 中断对照表中列举了可能的中断源和对应的中断号码。中断源可以是各种外设、系统事件或处理器内部的异常情况。中断号码是通过中断源的类型和优先级进行编码的,用于唯一标识不同的中断请求。 通过中断对照表,处理器可以对特定的中断源进行配置,指定中断号码和中断处理程序。当中断源产生中断信号时,中断控制器会将中断请求传递给处理器,并根据中断对照表的配置将其正确映射到相应的中断号码。处理器会根据中断号码调用相应的中断处理程序来处理中断请求。 中断对照表在系统设计和开发中起到了重要的作用。它定义了不同的中断源和中断号码的关系,帮助系统开发人员正确配置中断控制器和处理器的中断连接。通过合理配置中断对照表,可以确保系统能够快速、准确地响应不同的中断请求,提高系统的可靠性和性能。 总之,GIC-400 中断对照表是用于指导中断控制器和处理器之间的中断信号传递的重要参考文档。它列举了可能的中断源和对应的中断号码,帮助系统开发人员正确配置中断连接,确保系统能够快速、准确地响应不同的中断请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stone8761

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值