当尝试使用Vivado HLS到sythnise,我得到这个误差的同一行:C++ HLS合成警告
CRITICAL警告:[SYNCHK 200-43] pcd_triangulation/pcd_triangulation.cpp:156 :使用或分配非静态指针'current.0.i.reg2mem'(该指针可能指 不同的存储器位置)。
CRITICAL警告:[SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156:常数 '开始' 具有 unsynthesizable类型“lass.triangle.2.28.31 =类型{[3× 小姑娘。三角形2.28.3 ...'(可能的原因:指向指针的指针或全局指针的指针 )。
CRITICAL警告:[SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156:常数 '开始' 具有 unsynthesizable类型“^ lass.triangle.2.28.31 =类型{[3× 小姑娘(可能的原因:结构变量 不能被分解,因为(1)不支持的类型转换;(2) 存储器复制操作;(3)结构体中使用的函数指针;( 4) 不支持的指针比较)。
CRITICAL警告:[SYNCHK 200-42] pcd_triangulation/pcd_triangulation.cpp:156:指针比较不是 支持。
代码是用C++编写的。因此,这是其给出上面的警告的代码:
if(start->child[0]==NULL && start->child[1]==NULL && start->child[2]==NULL)
start
是一个全球性的指针类(triangle *start
)和child[i]
是一个数组指向类(部件)内的同一类(triangle *child[3]
)。
class triangle {
public:
triangle *child[3];
...
}
triangle *start;
inline triangle *mylocate(int p) {
if (start->child[0] == NULL && start->child[1] == NULL &&
start->child[2] == NULL) {
return start;
...
}
}
任何人都可以帮助我解决这些问题吗?
请问您可以为您的问题添加一些上下文吗?事实上,你的问题是无法回答的。 – damienc
你也可以安排你的代码吗? – Stacked
对不起,我无法上传我的所有代码,太大了。我会尽力找到处理同样问题的人来帮助我。我是新来的,我不知道如何安排我的问题。 – Marios