Например, следующий оператор ассемблера должен перевести опкод 0x0000000b
пользовательского ASM мнемоника непризнанного в текущем riscv-Гну-наборе инструментах
custom0 0,0,0,0
С более старой версией riscv-Гну-набор инструментов (построено на Jun 4) Для его сборки не требуется параметр -march =. Однако, с сегодняшним мерзавцем главой riscv-tools я получаю:
$ /opt/riscv_new/bin/riscv64-unknown-elf-as -m32 test.s
test.s: Assembler messages:
test.s:1: Error: unrecognized opcode `custom0 0,0,0,0'
От чтения исходного кода я предполагаю прохождение арки Xcustom
к инструментам должны исправить это, но:
$ /opt/riscv_new/bin/riscv64-unknown-elf-as -m32 -march=RV32IMXcustom test.s
test.s: Assembler messages:
test.s:1: Error: unrecognized opcode `custom0 0,0,0,0'
(На . момент тест прошивки PicoRV32 не строить с последними riscv-Гну-набора инструментов because of this)
Edit: последняя версия riscv-инструменты, которые работают для меня совершить 84a47e0b4e с августа 20. с этой версии custom0 опкод является признанный d без опции -march=
.
У меня проблемы с RoCC. В идеале пользовательская команда 0 должна активировать шаблон RCCC ракеты, но я просто не могу определить правильный параметр, чтобы дать переменной «BuildRocc» в configs.scala, чтобы включить интерфейс RoCC и получить пример фиктивного аккумулятора рабочий –
hmm .. вы имеете в виду 'opcodes-custom' в' riscv-opcodes/'? На моей машине строки там имеют только '@' -sign в начале, указывающие, что они являются псевдооперациями (комментарий будет с '#'). Удаление '@' -sign и перестройка не влияют. – CliffordVienna
После того, как вы удалите @, вам нужно сделать установку в папке riscv-opcodes, а затем разрушить скрипт сборки в riscv-инструментах, затем пользовательские команды начнут работать. –