Главная » C++ » При использовании эмулятора C ++ происходит сбой при вызове системного вызова printf из голой металлической программы RISC-V
При использовании эмулятора C ++ происходит сбой при вызове системного вызова printf из голой металлической программы RISC-V
Я работаю над проектом, основанным на инструментах Rocket-Chip. Я сделал простую голую металлическую программу, которая хорошо работает на Spike (даже с несколькими ядрами … и т. Д.).
Проблема в том, что когда я запускаю его в эмуляторе C ++, последний останавливается при первом вызове printf.
Мой вопрос: можно ли вызвать системные вызовы (например, printf, putchar ..) из эмулятора C? Или есть какой-нибудь способ распечатать результаты программы из симуляции, например извлечь данные из памяти или что-то еще? (Я боролся с этим, и я не нашел, где он сохраняет переменные данных).
PS: программа основана на riscv-тесты / тесты системные вызовы там уже определены.
В соответствии с базой кода, адресом данных, указывающим на глобальную внешнюю переменную, с этого адреса необходимо прочитать 4 индекса 64-битных данных.