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

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

3天内不再提示

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

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

中断控制和状态寄存器

Machine Status Register (mstatus)

mstatus 寄存器跟踪并控制 hart 的当前操作状态,包括是否启用中断。

图片

通过设置 mstatus 中的 MIE 位来启用中断。在写入 mstatus.MIE=1 之前,建议先在 mie 中开启中断。

Machine Trap Vector (mtvec)

mtvec 寄存器有两个主要功能:定义陷阱向量的基地址,以及设置 U54内核处理中断的模式。对于 Direct 和 Vectored模式,中断处理模式在 mtvec 寄存器的 MODE 字段中定义。mtvec 寄存器在表 86 中描述,mtvec.MODE 字段在表 87 中描述。

图片图片

Mode Direct

在直接模式下操作时,所有中断和异常都会捕获到 mtvec.BASE 地址。在陷阱处理程序内部,软件必须读取 mcause寄存器以确定触发陷阱的原因。

在直接模式下操作时,BASE 必须是 4 字节对齐的。

Mode Vectored

在向量模式下运行时,中断将 pc 设置为 mtvec.BASE + 4 ×异常代码(mcause.EXCCODE)。例如,如果发生机器定时器中断,则将 pc 设置为 mtvec.BASE +0x1C。通常,陷阱向量表填充有跳转指令,以将控制转移到特定于中断的陷阱处理程序。

在向量中断模式下,BASE 必须是 256 字节对齐的。

所有机器外部中断(全局中断)都映射到异常代码 11。因此,当启用中断向量时,pc 设置为任何全局中断的地址 mtvec.BASE +0x2C。

Machine Interrupt Enable (mie)

通过设置 mie 寄存器中的相应位来启用各个中断。

图片

Machine Interrupt Pending (mip)

机器中断挂起 (mip) 寄存器指示当前哪些中断处于挂起状态。

图片

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

    关注

    31

    文章

    5258

    浏览量

    119341
  • 内核
    +关注

    关注

    3

    文章

    1341

    浏览量

    40104
  • 中断
    +关注

    关注

    5

    文章

    889

    浏览量

    41237
  • RISC
    +关注

    关注

    6

    文章

    461

    浏览量

    83575
  • sifive
    +关注

    关注

    0

    文章

    35

    浏览量

    9443
收藏 人收藏

    评论

    相关推荐

    U0IIR寄存器原理下载

    U0IIR寄存器原理下载 U0IIR寄存器 BIT0: 0:有中断 1:没有中断 BI
    发表于 03-10 14:13 95次下载

    51单片机与中断相关的寄存器

    51单片机与中断相关的寄存器简介中断控制寄存器IE中断优先级
    发表于 11-12 11:36 8次下载
    51单片机与<b class='flag-5'>中断</b>相关的<b class='flag-5'>寄存器</b>

    STM32串口通信相关寄存器中断回调函数

    (USART_CR1)控制寄存器 2 (USART_CR2)控制寄存器 3 (USART_CR3)串口配置串口初始化GPIO配置,开启中断
    发表于 12-28 19:11 7次下载
    STM32串口通信相关<b class='flag-5'>寄存器</b>和<b class='flag-5'>中断</b>回调函数

    ARM通用寄存器状态寄存器详解

    笔者来聊聊ARM通用寄存器以及状态寄存器的认识与理解。
    的头像 发表于 01-06 14:58 6521次阅读

    PLIC平台级中断控制器介绍

    的。 U54内核的平台级中断控制器 (PLIC) 最多可支持 132 个具有 7 个优先级的外部中断源。 Memory Map U54
    的头像 发表于 10-07 17:53 1016次阅读
    PLIC平台级<b class='flag-5'>中断控制器</b>介绍

    LIC内核中断挂起位和中断使能

    中断挂起位 PLIC 内核中断源挂起位的当前状态可以从挂起数组中读取,组织为 32 位的 5 个字。中断 ID 的挂起位存储在字的位中。
    的头像 发表于 10-07 17:57 664次阅读
    LIC<b class='flag-5'>内核</b><b class='flag-5'>中断</b>挂起位和<b class='flag-5'>中断</b>使能

    U54内核PLIC中断处理例子

    Interrupt Claim Process U54 内核 hart 可以通过读取 claim_complete 寄存器(表 115)执行中断请求,该
    的头像 发表于 10-07 18:01 750次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>PLIC<b class='flag-5'>中断</b>处理例子

    U54内核上CLINT的内存映射

    ) {// handler code} 此属性将保存和恢复处理程序中使用的寄存器,并在处理程序的末尾插入一条 mret 指令。 CLINT内存映射 下图是U54 内核上 CLINT 的内存映射: 注意
    的头像 发表于 10-08 09:34 450次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>上CLINT的内存映射

    RISC-V SiFive U54内核中断介绍

    类型的 RISC-V 中断:本地和全局。 本地中断U54内核的本地中断只有2种,软件中断和定时
    的头像 发表于 10-08 09:39 471次阅读
    RISC-V SiFive <b class='flag-5'>U54</b><b class='flag-5'>内核</b>的<b class='flag-5'>中断</b>介绍

    U54内核中断进入和退出

    专用的堆栈区域。此外,每种特权模式都包含用于陷阱处理的单独控制状态寄存器(CSR)。在用户模式下操作时,需要上下文切换来处理主管模式下的事件。软件为上下文切换设置系统,然后执行 ECALL 指令,将
    的头像 发表于 10-08 09:47 510次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b><b class='flag-5'>中断</b>进入和退出

    U54内核特权模式中断介绍

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

    U54内核不可屏蔽中断信号

    中断 (RNMI)。 mnscratch CSR 拥有一个 64 位读写寄存器,它使 NMI 陷阱处理程序能够保存和恢复被中断的上下文。
    的头像 发表于 10-08 10:05 747次阅读
    <b class='flag-5'>U54</b><b class='flag-5'>内核</b>不可屏蔽<b class='flag-5'>中断</b>信号

    CPSR寄存器和APSR寄存器的组成

    程序状态寄存器的作用就是反映处理状态信息。在程序运行期间我们可以通过查看程序状态寄存器
    的头像 发表于 10-20 11:38 3829次阅读
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的组成

    s3c2410中断控制模块的中断状态寄存器是?

    S3C2410是一款由三星电子公司设计的具有多种功能的嵌入式处理。其中的中断控制模块用于管理系统的中断请求和中断服务程序。在S3C2410
    的头像 发表于 01-05 17:28 537次阅读

    干货满满:ARM的内核寄存器讲解

    内核寄存器与外设寄存器内核寄存器与外设寄存器是完全不同的概念。
    发表于 04-17 11:47 2106次阅读
    干货满满:ARM的<b class='flag-5'>内核</b><b class='flag-5'>寄存器</b>讲解