错误:表达式不是可赋值的c++结构

Error: Expression is not assignable C++ struct

本文关键字:赋值 c++ 结构 表达式 错误      更新时间:2023-10-16

我正在为FPGA编写c++中的正常带宽内核,这是从主机内存中读取某些内容并将其写回主机中的不同位置。我正在使用结构体,其中一个元素是输入和输出缓冲区的地址。高级合成工具对以下代码中的最后一行给出错误。

    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;}

我假设您想要分配给dout_mem中的指针,因此在(ap_uint<512> *)之前缺少解引用(注意开头的星号):

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