2015-10-26 2 views
1

Например, следующий оператор ассемблера должен перевести опкод 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=.

ответ

2

Прошу прощения, так долго не нашлось - я не читаю stackoverflow. Для справок в будущем, если вы представите github issue/PR или напишите мне прямо, я буду разбираться с такими вещами.

Исправление должно быть здесь, вы не можете его проверить? https://github.com/riscv/riscv-gnu-toolchain/pull/97

Извините за введение регресса!

1

Я также столкнулся с этой проблемой, в последнем обновлении инструментария gnu, если вы посмотрите на файл opcodes.custom в папке risv-opcodes, все пользовательские коды операций будут прокомментированы, вам необходимо раскомментировать те, которые вам нужны, и перекомпилировать toolchain

+0

У меня проблемы с RoCC. В идеале пользовательская команда 0 должна активировать шаблон RCCC ракеты, но я просто не могу определить правильный параметр, чтобы дать переменной «BuildRocc» в configs.scala, чтобы включить интерфейс RoCC и получить пример фиктивного аккумулятора рабочий –

+0

hmm .. вы имеете в виду 'opcodes-custom' в' riscv-opcodes/'? На моей машине строки там имеют только '@' -sign в начале, указывающие, что они являются псевдооперациями (комментарий будет с '#'). Удаление '@' -sign и перестройка не влияют. – CliffordVienna

+0

После того, как вы удалите @, вам нужно сделать установку в папке riscv-opcodes, а затем разрушить скрипт сборки в riscv-инструментах, затем пользовательские команды начнут работать. –

Смежные вопросы