c++ - 错误 : Expression is not assignable C++ struct

标签 c++ struct vivado-hls

我正在用 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;}

最佳答案

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

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

关于c++ - 错误 : Expression is not assignable C++ struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40298550/

相关文章:

c++ - C++17 中结构化绑定(bind)引入的标识符有哪些类型?

c++ - 为什么我的并行 foreach 循环实现比单线程慢?

C 访问结构中的元素

c++ - Vivado SDK 无法识别#include "math.h"中的函数

c++ - 以优雅的方式构造字符串

struct - 从结构定义中定义 Go 方法有什么好处?

c - 使用 "fread"获得意外输出

c - 维瓦多 HLS :How to declare arbitrary precision (or bit-accurate) integer data types for 2D array?

c++ - boost::shared_ptr 与 vector 一起使用很慢?