Когда я пытаюсь выполнить синтез с помощью Vivado HLS, я получаю следующие ошибки для той же строки:
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: [SYNCHK 200-43] pcd_triangulation/pcd_triangulation.cpp:156: использование или назначение нестатического указателя 'current.0.i.reg2mem' (этот указатель может относиться к другой памяти локации).
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: [SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156: константа start имеет несинтезируемый тип lass.triangle.2.28.31 = type { [3 x lass.triangle .2.28.3...' (возможная(-ые) причина(-ы): указатель на указатель или глобальный указатель).
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: [SYNCHK 200-11] pcd_triangulation/pcd_triangulation.cpp:156: константа start имеет несинтезируемый тип '^lass.triangle.2.28.31 = type { [3 x �lass. треугольник.2.28.3...' (возможная(-ые) причина(-ы): структурная переменная не может быть декомпозирована из-за (1) неподдерживаемого преобразования типа; (2) операции копирования памяти; (3) указателя на функцию, используемого в структуре; (4) неподдерживаемого сравнение указателей).
ВАЖНОЕ ПРЕДУПРЕЖДЕНИЕ: [SYNCHK 200-42] pcd_triangulation/pcd_triangulation.cpp:156: сравнение указателей не поддерживается.
Код на С++. Итак, это код, который выдает предупреждения выше:
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;
...
}
}
Может ли кто-нибудь помочь мне решить эти проблемы?
triangle
- person smac89   schedule 11.11.2016