Отладка простых программ на C и ассемблере с помощью Spike (riscv-isa-sim)

Я использую программы Simple C и Assembly на spike (это работает нормально). У меня проблемы с запуском режима отладки шипов. Я всегда получаю один и тот же вывод, хотя пытаюсь отлаживать разные программы. Я использую riscv64-unknown-elf-gcc для генерации исполняемых двоичных файлов из C и кода сборки и следующих команд, также описанных на: http://riscv.org/download.html для запуска режима отладки:

$ spike -d pk simpleprogram

Я также получаю тот же вывод, если я просто наберу:

$ spike -d pk 

Я получаю сообщения об ошибках, если я набираю следующую команду (без ПК):

$ spike -d simpleprogram 

1 ответ

ПК на самом деле ядро ​​прокси. Это однопроцессная ОС, позволяющая упростить запуск программ. Pk - это двоичный файл RISC-V, который выполняется поверх spike.

Когда вы запускаете spike с помощью pk, сначала он запускает pk, а когда все готово, pk передает выполнение вашей программе (что является аргументом для pk). Вы видите тот же вывод, потому что вы не выполнили достаточно далеко, чтобы запустить pk и войти в вашу программу.

Запуск без pk возможен, но ваша программа должна быть скомпилирована специально для запуска в этом режиме без использования ресурсов. Например, как это сделать, я посмотрю на репозиторий riscv-tests, чтобы узнать, как запускать минимальные программы.

Другие вопросы по тегам