Ошибка: выражение не присваивается структура C ++

Я пишу обычное ядро ​​с пропускной способностью на C ++ для FPGA, который читает что-то из памяти хоста и записывает его обратно в другое место на хосте.
Я использую структуры, один из элементов которых — адреса для входных и выходных буферов. Инструмент синтеза высокого уровня выдает ошибку для последней строки в следующем коде.

    struct addr_struct {
ap_uint<64> address;
ap_uint<32> size;
ap_uint<16> type;
ap_uint<16> flags;
};
struct addr_struct CA_INPUT;
struct addr_struct CA_OUTPUT;
din_mem = 0x00;
dout_mem = 0x00;
ap_uint<32> i;
ap_uint<512> temp;
ap_uint<512> *din_mem;
ap_uint<512> *dout_mem;
for(i=0; i<2048; i++){
temp= (ap_uint<512> *)(din_mem + CA_INPUT.address + i*64);
(ap_uint<512> *)(dout_mem + CA_OUTPUT.address + i*64) = temp;}

2

Решение

Я предполагаю, что вы хотите назначить указатель в dout_memпоэтому отсутствует разыменование перед (ap_uint<512> *) (обратите внимание на звезду в начале):

*(ap_uint<512> *)(dout_mem + CA_OUTPUT.address + i*64) = temp;
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]