Работает ли полухостинг для qemu-system-aarch64?
Я использую Rust для написания кода в среде [no_std], ориентируясь на aarch64-unknown-none от ARM. Когда я включаю -semihosting, как указано в параметрах команды qemu-system-aarch64 ниже, я никогда не вижу никакого изображения на моем главном компьютере qemu или терминале.
Известно ли, что опция полухостинга работает для aarch64-unknown-none? Если да, может ли кто-нибудь поделиться опытом использования опций, фрагментом кода, который работает?
Команда qemu-system-aarch64 для запуска встроенного двоичного файла ядра:qemu-system-aarch64 -machine virt -cpu cortex-a57 -m 256M -semihosting -semihosting-config enable=on,target=native,chardev=semi0 -chardev stdio,id=semi0,signal=off -kernel kernel.bin
1 ответ
Вы не говорите, какую версию QEMU вы используете, но да, полухостинг работает на aarch64. Если вам нужна независимая проверка, на https://git.linaro.org/people/pmaydell/semihosting-tests.git/ есть набор тестов, который включает тесты A64.
Я предполагаю, что что-то еще в вашей программе идет не так, и она выходит из строя еще до того, как доходит до отправки какого-либо вывода на полухостинговый терминал. Использование заглушки отладки QEMU или опции ведения журнала '-d' — хороший способ выяснить, что программа на «голом железе» делает неправильно.
PS: если вы просто хотите отправить полухостинг на стандартный вывод, то «-semihosting» достаточно, вам не нужно возиться с chardev только для этого.