Не стартует qemu с ARM Versatilepb baseboard
В системе Ubuntu 18.04 установлен ARM Toolchain и qemu-system-arm. Задача - поднять ARM Versatilepb baseboard. Затем зайти в qemu-monitor, посмотреть регистры и тд.
Есть такой скрипт для сборки и запуска:
ARM=arm-none-eabi
QEMU=qemu-system-arm
$ARM-as -o ts.o ts.s
$ARM-ld -T t.ld -o t.elf ts.o
$ARM-nm t.elf
$ARM-objcopy -O binary t.elf t.bin
dd if=t.bin of=flash.bin bs=4096 conv=notrunc
rm *.o *.elf
$QEMU -M realview-pbx-a9 -kernel t.bin -nographic -serial /dev/null
И сопутствующие скрипту файлы:
ts.s
.text
.global start
start:
mov r0, #1 @ r0 = 1
MOV R1, #2 @ r1 = 2
ADD R1, R1, R0 // r1 = r1 + r0
ldr r2, =result /* result = r1 */
str r1, [r2]
stop: b stop
.data
result: .word 0 /* a word location */
t.ld
ENTRY(start)
SECTIONS
{
. = 0x10000;
.text : { ts.o }
.text : { *(.text) }
.data : { *(.data) }
.bss : { *(.bss) }
. = ALIGN(8);
. = . + 0x1000; /* 4kB of stack memory */
stack_top = .;
}
После запуска скрипта ./mk он отрабатывает, но qemu подвисает на этапе запуска t.bin. Не пойму, где затык. Буду рад помощи.
В консоли вижу:
./mk
0001001c t result
00011038 T stack_top
00010000 T start
00010014 t stop
0+1 records in
0+1 records out
50 bytes copied, 0,000467519 s, 107 kB/s
QEMU 4.2.1 monitor - type 'help' for more information
(qemu) pulseaudio: set_sink_input_volume() failed
pulseaudio: Reason: Invalid argument
pulseaudio: set_sink_input_mute() failed
pulseaudio: Reason: Invalid argument