@whycan 后面用的交叉编译工具都是使用的官方工具,但是没办法在Ubuntu上正常执行,如果在tina linux上运行,则如下图
在板载的ubuntu上运行则是报illegal instruction的错误。
Z
zny666 发布的最新帖子
-
回复: 有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
-
回复: 有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
@whycan 所以是不是我的板子没有开启rvv指令的支持?如果是这个原因的话,请问应该怎么打开呢
-
回复: 有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
@whycan
刚刚我又使用了官网上提供的其他工具链,如果使用官网最新的下图中工具链,
会出现以下问题,
然后如果按照原教程提供的2021年的工具链,能够编译成功,如下图
但是在板子上运行时,会出现下面的报错(是在板子的ubuntu上运行)
-
回复: 有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
@whycan
刚刚的截图是我在D1上运行的ubuntu系统,系统中带有riscv版本的gcc编译器,所以我直接在板子的ubuntu系统上运行了gcc。
下面我又使用了tina的交叉编译工具链,不管加不加static都能够编译成功,
之后我将生成的tmp5传到板子上运行,出现了以下问题
这个问题是因为编译出的指令集不支持吗 -
回复: 有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
@kunyi
thank you,but now it still cannot run. -
回复: 有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
刚刚又尝试了在tinalinux上跑交叉编译出的文件,结果如下
还是无法正常运行,现在在tina和ubuntu上都无法运行,请大佬帮忙,如果过于麻烦,可以有偿 -
回复: 有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
刚刚使用了tina的交叉编译器,能够成功编译出可执行文件tmp3,但是在板子上无法执行,
-
有关编译c内联矢量指令时,unknown register name ‘v1’ in ‘asm’的问题
系统是D1-H上搭载的Ubuntu系统,用的gcc编译器是apt install上的,目前编译出现了问题,
其中testv.c文件的内容如下#include <unistd.h> #include <stdio.h> //#include <riscv-vector.h> void test_v(void) { float a[]={1.0,2.0,3.0,4.0}; float b[]={1.0,2.0,3.0,4.0}; float c[]={0.0,0.0,0.0,0.0}; int len=4; int i=0; //inline assembly for RVV 0.7.1 //for(i=0; i<len; i++){c[i]=a[i]+b[i];} asm volatile( "mv t4, %[LEN] \n\t" "mv t1, %[PA] \n\t" "mv t2, %[PB] \n\t" "mv t3, %[PC] \n\t" "LOOP1: \n\t" "vsetvli t0, t4, e32,m1 \n\t" "sub t4, t4, t0 \n\t" "slli t0, t0, 2 \n\t" //Multiply number done by 4 bytes "vle.v v0, (t1) \n\t" "add t1, t1, t0 \n\t" "vle.v v1, (t2) \n\t" "add t2, t2, t0 \n\t" "vfadd.vv v2, v0, v1 \n\t" "vse.v v2, (t3) \n\t" "add t3, t3, t0 \n\t" "bnez t4, LOOP1 \n\t" : :[LEN]"r"(len), [PA]"r"(a),[PB]"r"(b),[PC]"r"(c) :"cc","memory", "t0", "t1", "t2", "t3", "t4", "v0", "v1", "v2" ); for(i=0; i<len; i++){ printf("\n"); printf("%f\n",c[i]); printf("\n"); } } int main(){ test_v(); return 0; }
请问各位大大这是出现了什么问题,谢谢!