Объект внешнего интерфейса не реализует интерфейс 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
Другие вопросы по тегам