LINUX.ORG.RU

vim-syntastic, riscv, gd32v: Please select the target board type used in your application

 , ,


0

1

Провозился в vim-syntastic, assembler and different architectures (riscv64 for example) , в результате теперь подсвечиваются ошибки в коде на ассемблере riscv.

Дошла очередь до кода на C.

Этот код https://github.com/vazhnov/gd32v-lcd компилируется и работает на Sipeed Longan nano.

Добавил в .vimrc:

let g:syntastic_c_include_dirs = [
  \ expand('~/.platformio/packages/framework-gd32vf103-sdk/GD32VF103_standard_peripheral'),
  \ expand('~/.platformio/packages/framework-gd32vf103-sdk/GD32VF103_standard_peripheral/Include'),
  \ expand('~/.platformio/packages/framework-gd32vf103-sdk/RISCV/drivers'),
  \ ]

Теперь получаю такую ошибку при запуске VIM, например, с https://github.com/vazhnov/gd32v-lcd/blob/dev/src/main.c :

.platformio/packages/framework-gd32vf103-sdk/GD32VF103_standard_peripheral/gd32vf103.h|66 col 5 error| #error "Please select the target board type used in your application (in gd32vf10x.h file)" [c/gcc]                                                                                                                                      
/usr/lib/gcc/riscv64-linux-gnu/11/include/stdint.h|9 col 16 error| fatal error: stdint.h: No such file or directory [c/gcc]

Как правильно работать с подобным кодом в VIM?

★★

Последнее исправление: LeNiN (всего исправлений: 2)

select the target board type used in your application (in gd32vf10x.h file), хулі не ясно?

anonymous
()

Я бы проверил с какими дефайнами оно компилируется (для gcc это флаг -D), нету ли там чего-то, что задаёт target board? Если есть, то надо найти как те же самые опции передать анализатору кода.

DuMOHsmol
()
Ответ на: комментарий от DuMOHsmol

Спасибо, захардкодил такое в ~/.vimrc:

let g:syntastic_c_compiler_options = "-std=gnu99 -DHXTAL_VALUE=8000000"

-std=gnu99 взял из /usr/share/vim/addons/syntax_checkers/c/gcc.vim, а остальное из ~/.platformio/platforms/gd32v/boards/sipeed-longan-nano.json.

Осталась ошибка:

/usr/lib/gcc/riscv64-linux-gnu/11/include/stdint.h|9 col 16 error| fatal error: stdint.h: No such file or directory [c/gcc]                                             

Ругань вот на эту строчку кода:

# include_next <stdint.h>
LeNiN ★★
() автор топика
Ответ на: комментарий от DuMOHsmol

По мне, так я что-то в принципе не так делаю.

Но если искать именно stdint.h, то вот:

 % find / -name 'stdint.h'                           
/home/user/.platformio/packages/toolchain-gd32v/riscv-nuclei-elf/include/stdint.h
/home/user/.platformio/packages/toolchain-gd32v/riscv-nuclei-elf/include/c++/9.2.0/tr1/stdint.h
/home/user/.platformio/packages/toolchain-gd32v/lib/gcc/riscv-nuclei-elf/9.2.0/include/stdint.h
/usr/lib/picolibc/riscv64-unknown-elf/include/stdint.h
/usr/lib/gcc/riscv64-unknown-elf/8.3.0/include/stdint.h
/usr/lib/gcc/riscv64-linux-gnu/11/include/stdint.h
LeNiN ★★
() автор топика

ccls

Как я понимаю, мне надо доустановить к VIM что-нибудь типа ALE и с помощью PlatformIO создавать в каждом проекте файл .ccls, который будет подхватываться, а в нём такое:

clang

%c -std=gnu11 -Os -Wall -march=rv32imac -mabi=ilp32 -mcmodel=medlow -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common
%cpp -std=gnu++17 -Os -Wall -march=rv32imac -mabi=ilp32 -mcmodel=medlow -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common

-I/home/user/Projects/sipeed-longan-nano-hello-world/include
-I/home/user/Projects/sipeed-longan-nano-hello-world/src
-I/home/user/.platformio/packages/framework-gd32vf103-sdk/GD32VF103_standard_peripheral
-I/home/user/.platformio/packages/framework-gd32vf103-sdk/GD32VF103_standard_peripheral/Include
-I/home/user/.platformio/packages/framework-gd32vf103-sdk/GD32VF103_usbfs_driver
-I/home/user/.platformio/packages/framework-gd32vf103-sdk/GD32VF103_usbfs_driver/Include
-I/home/user/.platformio/packages/framework-gd32vf103-sdk/RISCV/drivers
-I/home/user/.platformio/packages/framework-gd32vf103-sdk/RISCV/env_Eclipse
-I/home/user/.platformio/packages/framework-gd32vf103-sdk/RISCV/stubs
-I/home/user/.platformio/packages/toolchain-gd32v/riscv-nuclei-elf/include/c++/9.2.0
-I/home/user/.platformio/packages/toolchain-gd32v/riscv-nuclei-elf/include/c++/9.2.0/riscv-nuclei-elf
-I/home/user/.platformio/packages/toolchain-gd32v/lib/gcc/riscv-nuclei-elf/9.2.0/include
-I/home/user/.platformio/packages/toolchain-gd32v/lib/gcc/riscv-nuclei-elf/9.2.0/include-fixed
-I/home/user/.platformio/packages/toolchain-gd32v/riscv-nuclei-elf/include

-DPLATFORMIO=50203
-DUSE_STDPERIPH_DRIVER
-DHXTAL_VALUE=8000000U
LeNiN ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.