Как устранить неопределенную ошибку инструкции во время симуляции Gem5 ARM fs - PullRequest
1 голос
/ 25 июня 2019

В настоящее время я пытаюсь запустить программу, скомпилированную для 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. У кого-нибудь есть идея, как мне решить эту проблему?

Ответы [ 2 ]

1 голос
/ 26 июня 2019

Применение изменений коммитов 260b0fc, 33b311d, 6efe7e1 и fcc379d ветви public / gem5 к ветви sve / beta1 устранило эту проблему для симуляции FS и SE.

0 голосов
/ 25 июня 2019

В общем, есть только одно решение: пойти и реализовать недостающую инструкцию.

В этом конкретном случае, поскольку вы находитесь на ветке, сначала вы должны создать минимальное значение (se.py, если это возможно)потому что это просто) пример, который использует инструкцию и видит, была ли она исправлена ​​в master.

Как уже упоминалось в: Как скомпилировать и запустить исполняемый файл в режиме эмуляции syscall gem5 с помощью se.py?однако в первые месяцы было зафиксировано исправление MRS glibc при коммите 260b0fc5381a47c681e7ead8e4f13aad45069665, который еще не вошел в sve / beta1.Можете ли вы попытаться выбрать его и посмотреть, что получится?

...