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

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

3天内不再提示

PMP配置和访问场景

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

PMP 配置

PMP 寄存器只能在机器模式下编程。pmpaddrX 寄存器应首先用受保护区域的基地址编程,右移两位。然后,应该使用正确配置的 64 位值对pmpcfgY 寄存器进行编程,其中包含每个正确对齐的 8 位 pmpXcfg 字段。未使用的字段可以简单地写入 0,标记它们未使用。

PMP 配置例子

以下示例显示了仅机器模式的配置,其中 PMP 权限应用于三个感兴趣的区域,第四个区域覆盖剩余的内存映射。回想一下,较低编号的 pmpXcfg 和pmpaddrX 寄存器优先于较高编号的区域。该规则允许更高编号的 PMP寄存器全面覆盖整个内存映射,同时允许编号较低的区域将权限应用于特定的感兴趣区域。以下示例显示基地址 0x0 处的 64 KB 闪存区域、基地址0x2000_0000 处的 32 KB RAM 区域以及基地址 base 0x3000_0000 处的 4 KB外设区域。内存映射的其余部分是保留空间。

图片

PMP 访问场景

L、R、W 和 X 位仅在访问的所有字节都被该 PMP 条目覆盖时确定访问是否成功。例如,如果 PMP 条目配置为匹配四字节范围0xC–0xF,那么对 0x8–0xF 范围的 8 字节访问将失败,假设 PMP 条目是与这些地址匹配的最高优先级条目。

在锁定位清零 (L=0) 的机器模式下运行时,如果 PMP 条目与访问的所有字节匹配,则访问成功。如果在机器模式下设置了锁定位(L=1),则访问取决于为该区域设置的权限。同样,在管理员模式或用户模式下,访问权限取决于为该区域设置的权限。

失败的读取或写入访问会生成加载或存储访问异常,并且指令访问错误会在失败的指令获取时发生。当尝试从没有执行权限的区域执行时发生异常时,错误发生在获取而不是分支上,因此mepc CSR 将反映目标保护区的值,而不是分支的地址。

一条指令可能产生多个访问,这可能不是相互原子的。如果一条指令产生的至少一次访问失败,则将发生异常。一条指令的其他访问可能会成功,但会产生明显的副作用。例如,对虚拟内存的引用可以分解为多个访问。

在某些实现中,未对齐的加载、存储和指令提取也可能被分解为多个访问,其中一些可能在访问异常发生之前成功。特别是,通过 PMP检查的未对齐存储的一部分可能变得可见,即使另一部分未通过 PMP 检查。对于比 XLEN 位宽的浮点存储(例如,RV32D 中的 FSD指令),即使存储地址自然对齐。

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

    关注

    3

    文章

    1309

    浏览量

    39862
  • PMP
    PMP
    +关注

    关注

    0

    文章

    43

    浏览量

    18068
  • RISC
    +关注

    关注

    6

    文章

    431

    浏览量

    83250
  • 配置
    +关注

    关注

    1

    文章

    184

    浏览量

    18169
  • sifive
    +关注

    关注

    0

    文章

    34

    浏览量

    9423
收藏 人收藏

    评论

    相关推荐

    怎么使用不带PMWR和PMRD的PMP数据引脚?

    嗨,我想知道我能不能用PMP来驱动一个图形控制器,用普通的gpio来驱动(CS,WR,RD,RS)信号,而不是用pmp模块控制信号?如果可以,PMP和谐模块的配置是什么?谢谢
    发表于 04-01 09:45

    PIC32MZ PMP问题

    你好!我有几年的经验与PIC32 MX尝试MZ现在,并进入一些问题。我有一个FPGA连接到PMP端口上的PIC32 MZ1024EF100。我可以在主模式下来回发送“一些”数据。我的设备是这样配置
    发表于 04-10 07:46

    16-MAC访问列表配置命令

    MAC访问列表配置命令
    发表于 12-17 10:44 5次下载

    17-物理端口IP访问列表配置命令

    物理端口IP访问列表配置命令
    发表于 12-17 11:06 9次下载

    18-VLAN访问列表配置命令

    VLAN访问列表配置命令
    发表于 12-17 11:06 7次下载

    工业交换机VLAN访问列表配置

    19-VLAN访问列表配置
    发表于 12-25 00:02 0次下载

    物理端口IP访问列表配置

    18-物理端口IP访问列表配置
    发表于 12-20 17:06 0次下载

    工业交换机MAC访问列表配置

    17-MAC访问列表配置
    发表于 12-25 00:03 0次下载

    交换机MAC访问列表配置

    交换机MAC访问列表配置
    发表于 12-27 16:44 0次下载

    交换机物理端口IP访问列表配置

    交换机物理端口IP访问列表配置
    发表于 12-27 16:43 0次下载

    配置Nginx访问日志

    每当处理客户请求时,Nginx都会在访问日志中生成一个新记录。每个事件记录都包含一个时间戳,并包含有关客户端和所请求资源的各种信息。访问日志可以显示访问者的位置,访问者的
    的头像 发表于 05-24 09:59 1997次阅读

    InfiniBand和远程直接访问是什么,如何进行配置

    本文简单描述了InfiniBand 和远程直接访问(RDMA)是什么,以及在实践中如何配置InfiniBand网络硬件。另外,本文档解释了如何配置与 InfiniBand 相关的服务。
    的头像 发表于 11-25 14:26 1269次阅读

    OpenHarmony上配置双网卡案例

    在某些特殊场景下,我们可能有这样的网络配置诉求,即:访问内网同时也需要访问外网。
    的头像 发表于 02-20 10:13 393次阅读

    PMP是什么 PMP功能描述

    PMP 可以授予对设备内存映射的特定区域的权限,但它也可以在机器模式下撤销权限。 当进行相应编程时,PMP 将在 hart 以管理员或用户模式运行时检查每次访问。对于机器模式,除非在特定区域的 pmpcfgY CSR 中设置锁
    的头像 发表于 10-07 17:32 468次阅读

    PMP物理内存保护介绍

    PMP 和 Paging 物理内存保护机制旨在与 RISC‑V 指令集手册,第二卷:特权架构,版本 1.10 中描述的基于页面的虚拟内存系统组合。启用分页后,访问虚拟内存的指令可能会导致多次物理内存
    的头像 发表于 10-07 17:49 594次阅读