我在整个互联网上搜索了使用arm-linux-gnueabi-as和qemu运行的代码,以打印一个整数值。从字符串中提取。可以使用以下例程:
我在整个互联网上搜索了使用arm-linux-gnueabi-as和qemu运行的代码,以打印一个整数值。从字符串中提取。可以使用以下例程:
.globl _start
_start:
ldr r0,=0x101f1000
mov r1,#0
loop:
add r1,r1,#1
and r1,r1,#7
add r1,r1,#0x30
str r1,[r0]
mov r2,#0x0D
str r2,[r0]
mov r2,#0x0A
str r2,[r0]
b loop
memmap
MEMORY
{
rom : ORIGIN = 0x00010000, LENGTH = 32K
}
SECTIONS
{
.text : { *(.text*) } > rom
}
Makefile
CROSS_COMPILE ?= arm-none-linux-gnueabi
AOPS = --warn --fatal-warnings
COPS = -Wall -Werror -O2 -nostdlib -nostartfiles -ffreestanding
hello_world.bin : startup.s memmap
$(CROSS_COMPILE)-as $(AOPS) startup.s -o startup.o
$(CROSS_COMPILE)-ld startup.o -T memmap -o hello_world.elf
$(CROSS_COMPILE)-objdump -D hello_world.elf > hello_world.list
$(CROSS_COMPILE)-objcopy hello_world.elf -O binary hello_world.bin
运行
qemu-system-arm -M versatilepb -m 128M -nographic -kernel hello_world.bin
但是我不知道如何退出控制台
相反,如果你这样做:
qemu-system-arm -M versatilepb -m 128M -kernel hello_world.bin
-nographic
选项,可以通过Ctrl-a然后x停止进程。请注意,它不是Ctrl-a-x。您需要先释放组合键,然后再按x。我曾经为此苦苦挣扎了十分钟。而a表示的是'A'键,不是alt键。 - Dan P-monitor stdio
的qemu 而不是 -nographic
(即有图形界面),允许您在启动qemu的终端中键入“quit”以退出。 - duanev