R128 Vector支持
-
因为CFFT时间很长,尝试使用Vector优化,R128 打开Vector支持后编译出错,提示在memcpy_vector.s中指令非法?这个怎么破?
-
请贴出编译日志。
-
@awwwwa 如下,谢谢
build rtos ...
Dark Builder
Version (1.6.0 - BiCEP2 (Gravitational Waves))
[CONF] [Tina-RT-Builder] .dbuild/..//include/generated/r128s2_devkit_c906/autoconf.h
AS build/r128s2_devkit_c906/arch/risc-v/c906/memcpy_vector.o
AS build/r128s2_devkit_c906/kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.o
arch/risc-v/c906/memcpy_vector.S: Assembler messages:
arch/risc-v/c906/memcpy_vector.S:54: 错误: unrecognized opcodevsetvli t0,a2,e8,m8' arch/risc-v/c906/memcpy_vector.S:54: 错误: unrecognized opcode
vle.v v0,(a1)'
arch/risc-v/c906/memcpy_vector.S:54: 错误: unrecognized opcodevse.v v0,(a3)' arch/risc-v/c906/memcpy_vector.S:70: 错误: unrecognized opcode
vsetvli t0,a2,e8,m4'
arch/risc-v/c906/memcpy_vector.S:70: 错误: unrecognized opcodevle.v v0,(a1)' arch/risc-v/c906/memcpy_vector.S:70: 错误: unrecognized opcode
vse.v v0,(a3)'
arch/risc-v/c906/memcpy_vector.S:86: 错误: unrecognized opcodevsetvli t0,a2,e8,m2' arch/risc-v/c906/memcpy_vector.S:86: 错误: unrecognized opcode
vle.v v0,(a1)'
arch/risc-v/c906/memcpy_vector.S:86: 错误: unrecognized opcodevse.v v0,(a3)' arch/risc-v/c906/memcpy_vector.S:102: 错误: unrecognized opcode
vsetvli t0,a2,e8,m1'
arch/risc-v/c906/memcpy_vector.S:102: 错误: unrecognized opcodevle.v v0,(a1)' arch/risc-v/c906/memcpy_vector.S:102: 错误: unrecognized opcode
vse.v v0,(a3)'
arch/risc-v/c906/memcpy_vector.S:120: 错误: unrecognized opcodevsetvli t0,a2,e8,m8' arch/risc-v/c906/memcpy_vector.S:120: 错误: unrecognized opcode
vle.v v0,(a1)'
arch/risc-v/c906/memcpy_vector.S:120: 错误: unrecognized opcodevse.v v0,(a3)' arch/risc-v/c906/memcpy_vector.S:127: 错误: unrecognized opcode
vsetvli t0,a2,e8,m4'
arch/risc-v/c906/memcpy_vector.S:127: 错误: unrecognized opcodevle.v v0,(a1)' arch/risc-v/c906/memcpy_vector.S:127: 错误: unrecognized opcode
vse.v v0,(a3)'
arch/risc-v/c906/memcpy_vector.S:133: 错误: unrecognized opcodevsetvli t0,x0,e64,m1' arch/risc-v/c906/memcpy_vector.S:134: 错误: unrecognized opcode
vmxor.mm v0,v0,v0'
arch/risc-v/c906/memcpy_vector.S:135: 错误: unrecognized opcodevmv.s.x v0,a4' arch/risc-v/c906/memcpy_vector.S:136: 错误: unrecognized opcode
vmsbf.m v0,v0'
arch/risc-v/c906/memcpy_vector.S:137: 错误: unrecognized opcodevsetvli t0,x0,e8,m4' arch/risc-v/c906/memcpy_vector.S:138: 错误: unrecognized opcode
vle.v v8,(a1),v0.t'
arch/risc-v/c906/memcpy_vector.S:139: 错误: unrecognized opcodevse.v v8,(a3),v0.t' kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S: Assembler messages: kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:392: 错误: unrecognized opcode
vsetvli t4,x0,e8,m8'
kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:393: 错误: unrecognized opcodevse.v v0,(a0)' kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:395: 错误: unrecognized opcode
vse.v v8,(a0)'
kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:397: 错误: unrecognized opcodevse.v v16,(a0)' kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:399: 错误: unrecognized opcode
vse.v v24,(a0)'
arch/risc-v/c906/memcpy_vector.S:265: 错误: unrecognized opcodevsetvli zero,zero,e8,m2,d1' arch/risc-v/c906/memcpy_vector.S:267: 错误: unrecognized opcode
vle.v v8,(a5)'
arch/risc-v/c906/memcpy_vector.S:268: 错误: unrecognized opcodevse.v v8,(a4)' kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:728: 错误: unrecognized opcode
vsetvli t4,x0,e8,m8'
kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:729: 错误: unrecognized opcodevle.v v0,(a0)' kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:731: 错误: unrecognized opcode
vle.v v8,(a0)'
kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:733: 错误: unrecognized opcodevle.v v16,(a0)' kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:735: 错误: unrecognized opcode
vle.v v24,(a0)'
kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.S:740: 错误: unrecognized opcode `vsetvl t4,t1,t0'
LD build/r128s2_devkit_c906/kernel/FreeRTOS-orig/obj-in.o
LD build/r128s2_devkit_c906/arch/risc-v/c906/obj-in.o
tools/riscv64-elf-x86_64-20201104/bin/riscv64-unknown-elf-ar: build/r128s2_devkit_c906/kernel/FreeRTOS-orig/Source/portable/GCC/RISC-V/portASM_C906.o: 没有那个文件或目录
make[2]: *** [scripts/build/Makefile.build:189:build/r128s2_devkit_c906/kernel/FreeRTOS-orig/obj-in.o] 错误 1
tools/riscv64-elf-x86_64-20201104/bin/riscv64-unknown-elf-ar: build/r128s2_devkit_c906/arch/risc-v/c906/memcpy_vector.o: 没有那个文件或目录
make[1]: *** [/home/layzerlee/Desktop/work/R128-FreeRTOS_v0.9/R128-FreeRTOS/SDK/lichee/rtos/scripts/build/Makefile.build:183:FreeRTOS-orig] 错误 2
make[3]: *** [scripts/build/Makefile.build:189:build/r128s2_devkit_c906/arch/risc-v/c906/obj-in.o] 错误 1
make[2]: *** [scripts/build/Makefile.build:183:c906] 错误 2
make[1]: *** [/home/layzerlee/Desktop/work/R128-FreeRTOS_v0.9/R128-FreeRTOS/SDK/lichee/rtos/scripts/build/Makefile.build:183:risc-v] 错误 2
make: *** [/home/layzerlee/Desktop/work/R128-FreeRTOS_v0.9/R128-FreeRTOS/SDK/lichee/rtos/.dbuild/dbuild.mk:222:/home/layzerlee/Desktop/work/R128-FreeRTOS_v0.9/R128-FreeRTOS/SDK/lichee/rtos/build/r128s2_devkit_c906/arch/obj-in.o] 错误 2
make: *** 正在等待未完成的任务....
make: *** [/home/layzerlee/Desktop/work/R128-FreeRTOS_v0.9/R128-FreeRTOS/SDK/lichee/rtos/.dbuild/dbuild.mk:222:/home/layzerlee/Desktop/work/R128-FreeRTOS_v0.9/R128-FreeRTOS/SDK/lichee/rtos/build/r128s2_devkit_c906/kernel/obj-in.o] 错误 2
******* XRADIO_DIRS=common tinycrypt/source porting net nvs *******
make rtos fail*
-
@layzerlee 需要修改编译参数加上v扩展支持
CONFIG_TOOLCHAIN_MACH_FLAGS="-mcmodel=medany -mabi=lp64dv -march=rv64gcxvthead" CONFIG_TOOLCHAIN_FPU_ABI="-march=rv64gcxvthead"
-
好呢,感谢!我试试
Copyright © 2023 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号