什么是pmp:如何在riscv中设置物理内存保护(risc v pmp)

我正在尝试编写一个使用 riscv PMP 的小软件。我正在使用 SaxonSochttps://github.com/SpinalHDL/SaxonSoc。这意味着,我可以访问硬件描述和模拟波

我试图理解为什么这个小测试不工作?:

int main (){
 volatile uint32_t * volatile mem=(uint32_t * volatile)( SYSTEM_RAM_A_CTRL+ 0x2000) ;
*mem=0x15;
main_println32x("mem :",*mem);
u32 new_pmpcfg0 =1<<7 ; //setting the L bit so restructions can be applied to M mode 
    new_pmpcfg0 =(new_pmpcfg0) | 3<<3 ; // A=3=NAPOT  ; R=W=X=0 
u32 new_pmpaddr0=(u32)( SYSTEM_RAM_A_CTRL+ 0x2000)  ;
   __asm__ volatile ("csrw    pmpaddr0, %0" 
                      : /* output: none */ 
                      : "r" (new_pmpaddr0) /* input : from register */
                      : /* clobbers: none */);                    
   __asm__ volatile ("csrw    pmpcfg0, %0" 
                      : /* output: none */ 
                      : "r" (new_pmpcfg0) /* input : from register */
                      : /* clobbers: none */);
*mem=0x19; // I expect an exception here 
main_println32x("mem :",*mem);
}

Simulation shows that the csr registers are configured correctly : simulation

但不幸的是,我没有得到我正在等待的异常。

任何关于我在这里失踪的想法?

0

我的第一个想法是 pmpaddr 没有正确设置。当您使用 NAPOT 编码时,开始地址和区域大小按照 RiscV 特权规范中的 Table3.10 进行编码。

我建议通过设置 pmpaddr = '1(所有)来覆盖整个地址空间来测试它,因此您正在访问的地址将与该 pmp 区域匹配。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(954)
文明6控制台代码:.NETCore6中的控制台日志记录
上一篇
C87saber水手服: Cómosabersobrequecommitestoytrabajando
下一篇

相关推荐

  • comeandgetyourlove音乐爱就在你身边

    Come and Get Your Love是一首热门的歌曲,由美国摇滚乐队Redbone演唱。这首歌曲于1974年发行,被收录在他们的专辑《Wovoka》中。歌曲以放克曲风为主,旋律活泼,曲调悠扬,歌词朗朗上口,深受歌迷喜爱。…

    2023-06-29 07:47:31
    0 63 86
  • css预编译器: center;}

    CSS预编译器是一种用于构建CSS的工具,它可以将CSS代码转换为更易于管理和维护的格式。它们可以使CSS代码更加灵活,更易于重用,并且可以帮助开发人员更轻松地组织和管理CSS代码。…

    2023-04-30 05:19:08
    0 97 41
  • python中predict函数参数:如何使用Python的predict函数进行机器学习预测

    示例示例predict函数是scikit-learn中的一个函数,用于预测新样本的输出结果。参数:…

    2023-03-30 08:03:12
    0 69 47
  • canvas 官网Bring Your Ideas to Life with Creative Artwork

    Canvas 官网是一个用于创建图形的 HTML5 API,它可以在浏览器中使用 JavaScript 来绘制 2D 图形。它提供了一个可以在网页上绘制图形的强大工具,可以用来创建动画、游戏、数据可视化等。…

    2023-02-28 09:52:08
    0 79 18
  • qt creator快速入门 第3版 pdf从零开始

    Qt Creator快速入门第3版是一本关于Qt Creator的教程书,旨在帮助读者快速掌握Qt Creator的使用。书中介绍了Qt Creator的基本功能,如如何创建项目、编辑代码、调试代码以及创建应用程序等等。书中还提供了一些实例代码,帮助读者更好地理解Qt Creator的用法。…

    2023-05-16 03:03:33
    0 43 51
  • cherry键盘win键不能用:解决Cherry键盘Win键无法使用的措施

    如果您的cherry键盘win键不能用,可能是由于系统设置问题导致的。下面提供一些代码,可以帮助您解决这个问题:打开“控制面板”,然后点击“硬件和声音”,打开“键盘”选项卡。…

    2023-08-27 03:36:33
    0 50 44
  • certificate意思一步一步指南

    示例示例是一种用于证明某个人或机构拥有某种资格或资质的文件。它可以是一种认证,也可以是一种奖励或认可。代码示例:…

    2023-09-14 15:01:58
    0 70 34
  • win10系统ctrl加c不能复制:解决win10系统下Ctrl+C不能复制的问题

    解决方案解决方案答:可能是由于系统快捷键被修改所导致的,可以尝试恢复系统默认快捷键;…

    2023-04-15 00:45:32
    0 25 44

发表评论

登录 后才能评论

评论列表(79条)