【发布时间】:2019-06-11 20:37:57
【问题描述】:
假设我构建了一个 vivado Zynq FPGA 项目,我想从运行在 zynq 上的 c 程序写入和读取 Zynq 的“M_AXI_GP0”端口,如下所示。此外,假设我要在 Zynq 的“M_AXI_GP0”端口上读写的地址是地址“0x000A1000”。我将如何在下面的代码中做到这一点?我需要担心 ARM 中的虚拟地址到物理地址的转换吗?有XIL api吗?等等...见代码示例:
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
void write(uint32_t addr, uint32_t wdata) {
//????? how to implement
}
uint32_t read(uint32_t addr) {
return 0;
}
int main()
{
init_platform();
print("Hello World\n\r");
uint32_t beef;
write(0x000A1000, 0xDEADBEEF);
write(0x000A1004, 0x12345678);
beef = read(0x000A1000);
cleanup_platform();
return 0;
}
【问题讨论】:
标签: c fpga xilinx vivado bare-metal