U54内核PLIC中断处理例子

interrupt claim processu54 内核 hart 可以通过读取 claim_complete 寄存器(表 115)执行中断请求,该寄存器返回最高优先级挂起中断的 id,如果没有挂起中断则返回零。成功的声明还会自动清除中断源上相应的挂起位。
u54 内核 hart 可以随时执行声明,即使其 mip寄存器中的 meip 位未设置。
声明操作不受优先级阈值寄存器设置的影响。
中断完成u54 内核 hart 通过将其从声明中收到的中断 id 写入 claim_complete 寄存器(表 115)来表示它已完成执行中断处理程序。plic 不检查完成 id 是否与该目标的最后一个声明 id 相同。如果完成 id 与当前为目标启用的中断源不匹配,则完成将被静默忽略。
plic 无法将新中断转发给已声明中断但尚未完成中断处理程序的完整步骤的 hart。因此,plic 不支持抢占单个 hart 的全局中断 。
通过 plic 路由的全局中断的中断 id 独立于本地中断的中断 id。在退出处理程序之前,一旦初始声明/完成过程完成,plic 处理程序可能会检查其他未决的全局中断。此方法可以为全局中断保存额外的 plic 保存/恢复上下文。
plic中断处理例子由于 plic 通过外部中断 #11 与 cpu 接口,因此外部处理程序必须包含一个额外的声明/完成步骤,用于与 plic 逻辑握手。
void external_handler() {//get the highest priority pending plic interruptuint32_t int_num = plic.claim_complete;//branch to handlerplic_handler[int_num]();//complete interrupt by writing interrupt number back to plicplic.claim_complete = int_num;// add additional checks for plic pending here, if desired}如果 cpu 读取 claim_complete 并返回 0,则中断不需要处理,因此不需要回写 claim/complete。
上面显示的 plic_handler 例程演示了一种实现软件表的方法,其中驻留在表中的函数的偏移量由 plic 中断 id 确定。plic 中断 id 对于 plic 是唯一的,因为它完全独立于本地中断的中断 id。

种子风选净度仪的作用是什么,它的功能有哪些
VR是如何改变我们工作方式的
酷冷至尊MWEGOLD550体验 静音表现非常出色
OSP的制造工艺及涂有OSP的PCB的存储要求
支持向量机(核函数的定义)
U54内核PLIC中断处理例子
探讨新华社推出全球首个5G沉浸式多地跨屏访谈中所运用的技术
LED在远程控制照明中的应用
随着补贴政策的退坡 新能源车企的盈利能力或将进一步降低
易现与阿里云、边缘云等发布宁波首个元宇宙培训(中国)创新中心
河北联通已率先完成了携号转网业务测试和计费验证
小米45W USB PD移动电源3拆解,型号PLM07ZM,采用杰华特JW3651四开关升降压转化器
蓝牙运动耳机哪款好?最佳蓝牙运动耳机分享
46亿欧元!AMS收购欧司朗超一半股份
pcb铜箔厚度和电流关系
传感器精度怎么计算 影响测量精度的因素有哪些
用于仿生视觉传感器内运动感知的光电分级神经元设计
三星2019年营业利润同比下降52.9%,今年将逐渐转好
谷歌发布球形“光场视频”捕捉方案,为消费者提供真正的沉浸式体验
垂直行业如何正确使用5G技术