U54内核中断进入和退出

陷阱trap
术语陷阱描述了软件应用程序中的控制转移,其中陷阱处理通常在更特权的环境中执行。例如,一个特定的 hart包含三种权限模式:机器、管理员和用户。每种特权模式都有自己的软件执行环境,包括专用的堆栈区域。此外,每种特权模式都包含用于陷阱处理的单独控制和状态寄存器(csr)。在用户模式下操作时,需要上下文切换来处理主管模式下的事件。软件为上下文切换设置系统,然后执行 ecall 指令,将控制同步切换到environment call-from-user 模式异常处理程序。
复位后的默认模式是机器模式。软件以最高权限级别开始执行,这允许在任何权限级别更改之前初始化所有 csr和系统资源。下面的步骤描述了将特权模式从机器模式更改为用户模式所需的步骤,在特定设计上也包括管理员模式。
应首先通过将 mstatus.mie 写入 0(默认复位值)来全局禁用中断。
将机器模式异常处理程序的基地址写入 mtvec csr。这是任何引导流程中的必需步骤。
将 mstatus.mpp 写入 0 以将之前的模式设置为 user,这允许我们返回到该模式。
设置物理内存保护 (pmp) 区域以将所需区域授予用户和主管模式,并可选择从机器模式撤消权限。
用主管模式异常处理程序的基地址写入 stvec csr。
编写 medeleg 寄存器,将异常委托给主管模式。考虑 ecall 和页面错误异常。
编写 mstatus.fs 以启用浮点(如果支持)。
将机器模式用户寄存器存储到堆栈或应用程序特定的帧指针。
用用户态软件的入口点编写mepc
执行mret指令进入用户模式。
note:只有一组用户寄存器 (x1 - x31) 用于所有权限级别,因此应用软件负责在进入和退出不同级别时保存和恢复状态。
本地中断
软件中断(中断 id #3):通过写入特定 hart 的内存映射中断挂起寄存器 msip 来触发。
定时器中断:当寄存器 mtime 大于或等于寄存器 mtimecmp 并且两个寄存器都是 clint 内存映射的一部分时,会触发定时器中断(中断 id#7)。mtime 和 mtimecmp 寄存器通常仅在机器模式下可用,除非 pmp 授予用户或管理员模式访问它们所在的内存映射区域的权限。
全局中断通常首先路由到 plic,然后使用外部中断进入 hart(中断 id #11)
中断操作
在特权模式 m 内,如果相关的全局中断使能 {ie} 清零,则在该特权模式下不会产生任何中断,但更高特权模式下的待决启用中断将抢占当前执行。如果设置了{ie},则在相同特权模式下处于更高中断级别的挂起启用中断将抢占当前执行并运行更高中断级别的中断处理程序。
当发生中断或同步异常时,会修改特权模式以反映新的特权模式。处理程序特权模式的全局中断使能位被清除
中断进入和退出
当中断发生时:
• mstatus.mie 的值被复制到mcause.mpie 中,然后mstatus.mie 被清除,有效地禁用了中断。
• 中断前的特权模式在mstatus.mpp 中编码。
• 当前 pc 被复制到 mepc 寄存器中,然后将 pc 设置为 mtvec 指定的值
此时,控制权移交给中断处理程序中的软件,并禁用中断。执行 mret 指令时,会发生以下情况:
• 特权模式设置为在 mstatus.mpp 中编码的值。
• 全局中断使能 mstatus.mie 设置为 mcause.mpie 的值。
• pc 设置为mepc 的值。
此时,控制权交给软件。

第二代AMD锐龙处理器评测 超高性价比
北斗星通布局汽车业务的实践与发展思路
RY2334 30V高侧过电压保护器的特性描述
超导材料在输电领域的应用前景、优势和局限性
韦尔股份确认收购芯能投资、芯力投资,将带动企业总体能力得到加强
U54内核中断进入和退出
三星芯片业务营收690亿美元 正式超越Intel成新王者
AI芯片新选择,忆阻器的作用
OPPO Enco X和三星Galaxy Buds+之间该如何选择
工控机在工业物联网中的应用是怎样的
评估数字通信链路质量的方法--眼图测试
国内三大云服务运营商谁更强
TeamViewer——一个值得信赖的远程办公“工作利器“
比亚迪刀片电池正式官宣 提升了50%的能量密度
雷柏MT350办公鼠标评测 可谓是为我等上班族量身打造
AGM推出新品AGM H2 代号蒙面鸽王
接触角的测定方法,接触角的滞后现象分析-晟鼎精密
安科瑞ACREL-2000电力监控系统在汽车制造领域的具体应用
2018年的区块链如何用一个字形容
工控机的作用与功能,研华工控机应用场景