0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

U54内核上CLINT的内存映射

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-10-08 09:34 次阅读

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 不会重置。

特权模式委托

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117763
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39862
  • RISC
    +关注

    关注

    6

    文章

    431

    浏览量

    83250
  • sifive
    +关注

    关注

    0

    文章

    34

    浏览量

    9423
收藏 人收藏

    评论

    相关推荐

    虚拟机:linux高端内存管理之永久内核映射

    与直接映射的物理内存末端、高端内存的始端所对应的线性地址存放在high_memory变量中,在x86体系结构上,高于896MB的所有物理内存的范围大都是高端
    的头像 发表于 06-23 08:38 3395次阅读
    虚拟机:linux高端<b class='flag-5'>内存</b>管理之永久<b class='flag-5'>内核</b><b class='flag-5'>映射</b>

    Linux内核内存映射原理分析

    Linux 内核采用延迟分配物理内存的策略,在进程第一次访问虚拟页的时候,产生缺页异常。如果是文件映射,那么分配物理页,把文件指定区间的数据读到物理页中,然后在页表中把虚拟页映射到物理
    发表于 07-21 17:06 2185次阅读

    拆解mmap内存映射的本质!

    mmap 内存映射里所谓的内存其实指的是虚拟内存,在调用 mmap 进行匿名映射的时候(比如进行堆内存
    的头像 发表于 01-24 14:30 350次阅读
    拆解mmap<b class='flag-5'>内存</b><b class='flag-5'>映射</b>的本质!

    Linux内核地址映射模型与Linux内核高端内存详解

    的数据可能不在内存中。 Linux内核地址映射模型 x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射
    发表于 05-08 10:33 3329次阅读
    Linux<b class='flag-5'>内核</b>地址<b class='flag-5'>映射</b>模型与Linux<b class='flag-5'>内核</b>高端<b class='flag-5'>内存</b>详解

    在TC387微控制器实现内存映射,负载增加的原因是什么?

    我正在 TC387 微控制器实现内存映射。 关于内存映射,在 Linker 脚本中定义了新区域,并将数据
    发表于 03-04 07:43

    linux系统内核中ioremap映射分析

    linux系统内核中ioremap映射分析 几乎每一种外设都是通过读写设备的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构
    发表于 08-05 09:49

    STM32(CM3内核内存映射简介

    这里写目录标题STM32(CM3内核内存映射一.CM3内核简介二.CM3内核地址映射三.搭建
    发表于 02-11 07:48

    浅析linux内存映射原理

    内存映射,简而言之就是将用户空间的一段内存区域映射内核空间,映射成功后,用户对这段
    发表于 08-24 09:35 1478次阅读
    浅析linux<b class='flag-5'>内存</b><b class='flag-5'>映射</b>原理

    STM32(CM3内核内存映射

    这里写目录标题STM32(CM3内核内存映射一.CM3内核简介二.CM3内核地址映射三.搭建
    发表于 12-07 19:21 9次下载
    STM32(CM3<b class='flag-5'>内核</b>) <b class='flag-5'>内存</b><b class='flag-5'>映射</b>

    PLIC平台级中断控制器介绍

    映射仅支持对齐的 32 位内存访问。 中断源 U54内核共有 132 个全局中断源,此外还有CLINT管理的 中描述的本地中断。 其中 12
    的头像 发表于 10-07 17:53 685次阅读
    PLIC平台级中断控制器介绍

    U54内核PLIC中断处理例子

    Interrupt Claim Process U54 内核 hart 可以通过读取 claim_complete 寄存器(表 115)执行中断请求,该寄存器返回最高优先级挂起中断的 ID,如果没有
    的头像 发表于 10-07 18:01 529次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>PLIC中断处理例子

    CLINT中断控制器优先级和抢占

    提供软件、定时器和外部中断。CLINT 块还保存与软件和定时器中断相关的内存映射控制和状态寄存器。 CLINT 优先级和抢占 CLINT
    的头像 发表于 10-08 09:30 367次阅读
    <b class='flag-5'>CLINT</b>中断控制器优先级和抢占

    RISC-V SiFive U54内核的中断介绍

    类型的 RISC-V 中断:本地和全局。 本地中断:U54内核的本地中断只有2种,软件中断和定时器中断,这两个中断都由本地中断器(CLINT)生成。本地中断通过专用中断异常代码和固定优先级直接发送给单个hart。因此,本地中断没
    的头像 发表于 10-08 09:39 292次阅读
    RISC-V SiFive <b class='flag-5'>U54</b><b class='flag-5'>内核</b>的中断介绍

    U54内核中断控制和状态寄存器

    向量的基地址,以及设置 U54内核处理中断的模式。对于 Direct 和 Vectored模式,中断处理模式在 mtvec 寄存器的 MODE 字段中定义。mtvec 寄存器在表 86 中描述,mtvec.MODE 字段在表 87 中描述
    的头像 发表于 10-08 09:54 352次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>中断控制和状态寄存器

    U54内核特权模式中断介绍

    特权模式中断 U54内核支持有选择地将中断和异常定向到S模式。 该功能由中断和异常委托CSR处理:mideleg和medeleg。S模式中断和异常可以通过stvec、sip、sie 和 scause
    的头像 发表于 10-08 09:59 460次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>特权模式中断介绍