NEMU icon indicating copy to clipboard operation
NEMU copied to clipboard

isa_mmu_check: Assertion `0' failed

Open chenglimin opened this issue 3 years ago • 4 comments

在NEMU上启动debian之后,执行NCNN推理程序时出现下面的问题 root@xiangshan-06:/root# ./squeezenet 000005.png [src/isa/riscv64/system/mmu.c,209,isa_mmu_check] addr misaligned happened: vaddr:b6f23 len:8 type:1 pc:20000117d4 riscv64-nemu-interpreter: src/isa/riscv64/system/mmu.c:210: isa_mmu_check: Assertion `0' failed. Aborted

chenglimin avatar Feb 16 '22 05:02 chenglimin

这里是出现问题的地方: https://github.com/OpenXiangShan/NEMU/blob/master/src/isa/riscv64/system/mmu.c#L207

粗暴的解决方式: 您可以直接将这行代码和下面的assert(0); 注释掉。

一些说明: 有些的硬件并不支持非对齐访问,因此nemu默认会直接assert,来提示代码有问题。不过nemu也可以通过报例外的方式,让例外处理函数“模拟”非对齐访存。 后面我们会添加一些配置选项,在编译之前配置这个功能。您现在可以先直接注释掉这里。

Lemover avatar Feb 23 '22 06:02 Lemover

非对齐访存会触发例外,因此会大幅影响程序的性能。您可以留意一下这个例外的发生频率,如果比较频繁,可能需要判断例外发生在系统代码中,还是用户程序中。如果发生在用户程序中,就需要重新编译一下来避免了(比如在链接脚本中,指定偏移量之类的)。

Lemover avatar Feb 23 '22 06:02 Lemover

只是在debian镜像里会出现这个问题,busybox制作的文件系统里执行应用程序时不会出现这个问题的。

chenglimin avatar Feb 25 '22 02:02 chenglimin

busybox制作的文件系统里执行应用程序时不会出现这个问题的

NEMU内执行的软件bug除非您可以确定属于NEMU的行为出错,一般情况下不属于NEMU能够修复的问题。

chenguokai avatar Feb 25 '22 03:02 chenguokai