全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

U54内核上CLINT的内存映射

时间:2023-10-08 09:34

人气:

作者:admin

标签: 内核  寄存器 

导读:CLINT中断属性 为了帮助提高保存和恢复上下文的效率,可以将中断属性应用于用于中断处理的函数。 void attribute ((interrupt))software_handler (void) {// handler code} 此属性将保存和恢复处...

CLINT中断属性

为了帮助提高保存和恢复上下文的效率,可以将中断属性应用于用于中断处理的函数。

void attribute ((interrupt))software_handler (void) {// handler
code}

图片

此属性将保存和恢复处理程序中使用的寄存器,并在处理程序的末尾插入一条 mret 指令。

CLINT内存映射

下图是U54 内核上 CLINT 的内存映射:

图片

注意,在 CLINT 内存映射中没有用于特定中断的启用位,因为这些中断的启用位于每个中断的 mie CSR 和 mstatus.mie CSR
位中,它全局启用所有机器中断。

相关寄存器

MSIP Registers

机器模式软件中断是通过写入内存映射控制寄存器 msip 来生成的。

msip 寄存器是一个 32 位宽的 WARL 寄存器,其中高 31 位绑定为 0。最低有效位反映在 mip CSR 的 MSIP 位中。msip
寄存器中的其他位被硬连线为零。复位时,每个 msip 寄存器都清零。

软件中断对于多 hart 系统中的处理器通信最有用,因为 harts 可能会写入彼此的 msip 位以影响处理器间中断。

软件中断其实更多的用于多核之间,也就是所谓的核间通信。

Timer Registers

与timer有关的寄存器主要是两个:mtime和mtimecmp

mtime 是一个 64 位读写寄存器,包含从 rtc_toggle 信号计数的周期数。

只要 mtime 大于或等于 mtimecmp 寄存器中的值,定时器中断就会挂起。定时器中断反映在 mip 寄存器的 mtip 位中。

复位时,mtime 清零。mtimecmp 不会重置。

特权模式委托

默认情况下,所有中断都会陷入机器模式,包括定时器和软件中断。

为了让定时器和软件中断直接进入管理员模式,定时器中断和软件中断必须首先委托给管理员模式。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信