Объект внешнего интерфейса не реализует интерфейс processor_info, требуемый командой
Я пытаюсь запустить тесты на голом железе под simics, как это предлагается в /questions/58256521/vyipolnenie-binarnogo-fajla-pri-modelirovanii-iz-komandnoj-stroki/58263604#58263604 но получаю
The frontend object does not implement the processor_info interface required by the command
Вот что я делаю:
- создать новый проект:
$HOME/simics/simics-6.0.89/bin/project-setup simics-test1 && cd simics-test1
- создайте небольшой конфигурационный файл:
% cat t1.simics
$start = (load-binary ./small)
%rip = $start
%rsp = 0x40001000
%bp.hap.run-until name = X86_HLT_Instr
- создайте крошечный двоичный файл с открытым железом:
% cat small.cc
extern "C" void _start() {
asm volatile ("mov $42, %rax");
asm volatile ("hlt");
}
% clang -O2 -static -nostdlib small.cc -o small
% objdump -d small
small: file format elf64-x86-64
Disassembly of section .text:
0000000000401000 <_start>:
401000: 48 c7 c0 2a 00 00 00 mov $0x2a,%rax
401007: f4 hlt
401008: c3 retq
- Запускаем simics:
./simics t1.simics
Intel Simics 6 (build 6103 linux64) Copyright 2010-2021 Intel Corporation
Use of this software is subject to appropriate license.
Type 'copyright' for details on copyright and 'help' for on-line documentation.
The frontend object does not implement the processor_info interface required by the command
[.../simics-test1/t1.simics:1] error in 'load-binary' command
Error - interrupting script.
1 ответ
Если это единственная настройка, которую вы делаете, в конфигурации Simics нет ничего, что могло бы запускать код. Проверьте содержимое конфигурации с помощью
list-objects
. Если он показывает только несколько основных объектов, у вас не настроена никакая машина. Как это:
simics> list-objects
┌─────────────────────────┬───────────────────────┐
│ Class │ Object │
├─────────────────────────┼───────────────────────┤
│<bp-manager> │bp │
│<breakpoints-old> │breakpoints │
│<frontend-server-console>│frontend_server_console│
│<preferences> │prefs │
│<sim> │sim │
│<tcf-agent> │tcf │
└─────────────────────────┴───────────────────────┘
Проверить наличие процессоров можно с помощью
list-processors
. Для пустого сеанса вы получите:
simics> list-processors
No processor found
В
load-binary
Команда по умолчанию работает на текущем интерфейсном процессоре. Проверьте, какой именно, с помощью
pselect
. И снова пустой сеанс:
simics> pselect
No frontend object selected