В настоящее время я пытаюсь запустить программу, скомпилированную для arm64 на Gem5. Я использую ветку sve / beta1 Gem5 , ядро Linux 4.15 , и программа использует glibc (он статически связан).
Для запуска Gem5 я использую следующую команду:
. / Build / ARM / gem5.opt конфиги / example / arm / fs_bigLITTLE.py --arm-sve-vl = 8 --cpu-type = atomic --big-cpus = 2 --little-cpus = 2 --kernel = / dist / m5 / system / binaries / linux4_15 --dtb = / dist / m5 / system / binaries / armv8_gem5_v1_big_little_2_2.dtb --disk = / dist / m5 / system / Диски / linaro-minimal-aarch64. IMG
Я успешно загружаю дистрибутив linux, а также запускается бинарный файл. Однако через некоторое время я получаю следующее сообщение об ошибке:
[13602.881469] Program_Binary [1059]: неопределенная инструкция: pc = 000000006e018621
[13602.881484] Код: d503201f d11b43ff a9007bfd 910003fd (d50320ff)
Я не совсем уверен, какая инструкция вызывает это, но я предполагаю, что это инструкция (d11b43ff), которая согласно справочному руководству ARM является инструкцией msr. У кого-нибудь есть идея, как мне решить эту проблему?