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