Захотел я вернуться к истокам и научиться писать на ассемблере risc-v (больше 20 лет назад знал ассемблер Z80).
Работаю в VIM, использую vim-syntastic для автоматической подсветки ошибок/предупреждений в Python/Shell.
Использую Xubuntu 20.04 amd64, можно и Gentoo если надо посвежее.
Установил пакеты gcc-riscv64-unknown-elf binutils-riscv64-unknown-elf
Взял Hello world отсюда: https://git.sr.ht/~matthias_t/hello-riscv/tree/master/item/src/hello.s (вообще из этой статьи, если кому интересно: Hello, RISC-V and QEMU).
Проблема 1: Error: no such instruction … [asm/gcc]
Открываю hello.s
в VIM, вижу:
hello.s|4 error| Error: no such instruction: `li s1,0x10000000' [asm/gcc]
hello.s|5 error| Error: no such instruction: `la s2,message' [asm/gcc]
hello.s|6 error| Error: no such instruction: `addi s3,s2,14' [asm/gcc]
hello.s|8 error| Error: no such instruction: `lb s4,0(s2)' [asm/gcc]
hello.s|9 error| Error: no such instruction: `sb s4,0(s1)' [asm/gcc]
Ну понятно, что системные gcc
/as
не умеют riscv64. Нашёл решение, прописал в ~/.vimrc
:
let g:syntastic_asm_compiler = 'riscv64-unknown-elf-gcc'
Больше не ругается.
Проблема 2: vim-syntastic теперь не подсказывает ошибки
По какой-то причине теперь в VIM осталась подсветка синтаксиса, но больше нет ругани на ошибки, даже если я их специально допускаю.
Вывод :SyntasticInfo
в обоих случаях (с заданным syntastic_asm_compiler
и без него) одинаковый:
Syntastic version: 3.10.0 (Vim 801, Linux)
Info for filetype: asm
Global mode: active
Filetype asm is active
The current file will be checked automatically
Available checker: gcc
Currently enabled checker: gcc
Как бы сделать так, чтобы vim-syntastic подсказывал ошибки и предупреждения для riscv64?