當嘗試使用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