繁体   English   中英

带有U-Boot的QEMU使用100%的CPU

[英]QEMU with U-Boot uses 100% of CPU

在Lubuntu VirtualBox VM(macOS主机)内部,我正在运行带有U-Boot内核(?)的QEMU,以加载我编译的ARM汇编代码(使用tftp addr *.bingo addr )。

我的问题是QEMU使用100%的CPU。 我正在学习Assembly编程课程,并被告知那是不正常的(这也是为什么我使用VM的原因)…

我不确定问题是从哪里来的,这是VirtualBox(安装了来宾添加程序)还是QEMU的配置问题?

使用以下参数启动QEMU:

export QEMU_AUDIO_DRV=none
qemu-arm/arm-softmmu/qemu-system-arm -s -localtime -m 256 -M reptar -kernel u-boot-arm/u-boot -tftp . -serial mon:stdio -nographic

版本是:

$ qemu-arm/arm-softmmu/qemu-system-arm --version
QEMU emulator version 2.4.1 (qemu-linaro from git), Copyright (c) 2003-2008 Fabrice Bellard

引导输出:

reptar-sp6-emul: sp6_emul_init
sp6_emul_init: failed to connect to SP6 server
sp6_emul_init: terminate thread


U-Boot 2016.09 (Sep 26 2018 - 17:19:23 +0200)

OMAP35XX-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 600 MHz
REDS Reptar board + LPDDR/NAND
I2C:   ready
DRAM:  256 MiB
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0
Using default environment

Net:   smc911x-0
Reptar # 

即使来宾CPU正在“做某事”,QEMU也会在来宾CPU做某事时使用主机CPU。 如果来宾代码在其空闲循环中使用CPU指令WFI(“等待中断”),则QEMU将通过停止直到来宾中断发生来进行处理。 (WFI是Arm指令;对于其他来宾体系结构,通常存在等效的指令,例如x86的HLT。)

因此,当来宾“空闲”时,QEMU是否使用100%CPU,取决于来宾的空闲循环的确切功能。 像Linux这样的“真实操作系统”中的空闲循环将使用WFI(在真实硬件上使用WFI可以降低功耗),因此,在主机CPU使用率非常低的情况下,它们将处于空闲状态。 坐在u-boot提示符下的CPU使用率将取决于u-boot的编码方式。 汇编代码中的CPU使用率取决于它的作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM