Yeti Project / RISC-V Virtual machine
Запись от Max Dark размещена 16.12.2024 в 17:09
Показов 2434
Комментарии 4
Метки bash, c, risc-v, virtual machine
|
YetiVM - расширяемый execution environment. * GitLab - YetiVM * GitHub - YetiVM * Тема в "Бетатестировние" Описание: В качестве bytecode используется подмножество инструкций из RISC-V ISA. По сути является библиотекой, которую можно встраивать в Ваше ПО. Позволяет использовать любой компилируемый ЯП для создания расширений. Основные возможности: * вывод листинга (disasm) * создание своих syscall На данный момент поддерживаются: * rv32i - основные инструкции(кроме CSR/fence - там сейчас просто заглушки) * rv32m - целочисленная математика Реализована загрузка кода из *.hex файлов Для компиляции проекта потребуется: * поддержка C++20 (тестировалось на gcc-13/clang-18) * CMake (>= 3.20) * GTest/GMock, опционально, используется для тестирования * riscv64-unknown-elf-gcc/riscv64-unknown-elf-binutils - опционально, для сборки примеров Сейчас можно собрать и запустить программы на Си/Ассемблере. Библиотеки текущей системой сборки проекта не поддерживаются. Минимальная программа на Си:
| ||||||||||
Метки bash, c, risc-v, virtual machine
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 4
Комментарии
-
Прогнал тесты из RISC-V Architecture Test
Успешно пройдены:
*rv32i_m/I
*rv32i_m/M
Так же можно назвать ожидаемым поведением, то что оно выбрасывает исключения на тестах из набораrv32i_m/privilege
UPD: поторопился
Срабатывает ассерт:
Code 1 2 3 4 5
0000097c lui t4, 40000000 0 0 0 40000000 0 0 00000980 sltiu a7, t4, 4087 feffffff 40000000 1 0 40000000 1 00000984 sw a7, sp, 12 fffffff7 40104c 0 fffffff7 40104c 0 00000988 addi gp, zero, 1 1 0 0 1 0 0 0000098c beq gp, a7, 80 0 1 0 0 1 0
Запись от Max Dark размещена 20.12.2024 в 20:41
-
Запись от Max Dark размещена 20.12.2024 в 23:18
-
Запись от Max Dark размещена 31.03.2025 в 20:57
-
release/v0.0.5
Добавлены обработчики для инструкций, работающих с CSR
*csrrw[i]- "CSR read and write"
*csrrs[i]- "CSR read and set bits"
*csrrc[i]- "CSR read and clear bits"
Изменен интерфейс VM:
методcontrol()заменен наcontrol_get/control_set
Вbasic_vmэти методы сейчас выбрасывают исключение "не реализовано"Запись от Max Dark размещена 05.04.2025 в 04:22


