QEMU在模拟ARM上消耗大量CPU

时间:2019-05-20 15:35:55

标签: arm raspberry-pi3 qemu

我正在编写一个用于学习目的的操作系统,我专注于将raspberry pi3作为目标计算机。为了测试我的代码,我决定使用QEMU模拟树莓派硬件。顺便说一句,问题不是关于树莓,而是关于ARM仿真或QEMU的标准行为。问题是当我使用以下命令启动内核时:

qemu-system-aarch64 -M raspi3 -monitor stdio -d in_asm -kernel kernel8.img 

我有100%使用率的4个内核(运行Linux的x86_64)。

更确切地说,我的内核根本不是内核!内核的引导程序只有两行汇编:

.section ".text.boot"

.global _start

_start:
1:      wfi
        b 1b

因此,我认为问题不在代码中。这是kernel8.elf的转储

~> aarch64-elf-objdump -d kernel8.elf

kernel8.elf:     file format elf64-littleaarch64


Disassembly of section .text:

0000000000080000 <__start>:
   80000:       d503207f        wfi
   80004:       17ffffff        b       80000 <__start>

也在尝试更换机器,例如raspi2或Universalpb并没有多大帮助,CPU使用率较低,但仍然很高(平均70%)。使用通用的ARM仿真“ -M virt”可以减少更多的CPU使用率,但一个内核始终为100%,另一个内核始终为50%。

这正常吗?考虑到我所仿真的代码极其简单,在x86上仿真ARM是否需要大量的CPU使用??

0 个答案:

没有答案