昨天通过和高手联调程序发现了好多问题
1.大小端问题
LD[31..0]对应fpga的bit31-bit0位,所以需要调整过来
2.地址线问题
LA[5..20]对应fpga地址线的bit0-bit16,这种接发是错误的。因此,应该调整fpga地址线的bit0对应LA[31]。
这样
volatile unsigned int* pAddr32 = fpga_virt_base + FPGA_REG_OFFSET;
pAddr32[reg] = data;
昨天通过和高手联调程序发现了好多问题
1.大小端问题
LD[31..0]对应fpga的bit31-bit0位,所以需要调整过来
2.地址线问题
LA[5..20]对应fpga地址线的bit0-bit16,这种接发是错误的。因此,应该调整fpga地址线的bit0对应LA[31]。
这样
volatile unsigned int* pAddr32 = fpga_virt_base + FPGA_REG_OFFSET;
pAddr32[reg] = data;