我正在microblaze xilinx 13.1中实现UART。我想将RX值存储在fifo中,fifo是使用VHDL中的xilinx ipcore实现的。
我像这样得到了接收到的字节,
while(1) {
Recvd_Byte = XUartLite_RecvByte(0x40600000);
}我已经在我的VHDL代码中实现了fifo。system.xmp和先进先出都是我顶部模块下的组件。
如何在C代码中访问这个Recvd_Byte,并在VHDL语言中传递给先进先出(Fifo_wr_data)。
请帮帮我。我是microblaze的新手。
发布于 2014-05-14 15:29:48
为了将数据写入到fpga中的寄存器中,xil_io.h中有一些函数。地址可以在xparameters.h中看到。您想要写入数据的寄存器的地址是什么?
默认情况下,IP核有32个寄存器,您可以从0x40600000读取数据;也就是slv_reg0;假设slv_reg1是空闲的,这样您就可以在它的地址上写入数据。下一个寄存器将位于地址0x40600004;//假定寄存器的宽度为32位
you can use commands
Xil_Out8(0x40600004);
Xil_Out16(0x40600004);
Xil_Out32(0x40600004); 或者,也可以仅将数据写入下一个字节来签署命令
Xil_Out8(0x40600001);//尝试在问题中提供更多详细信息。
//我们可以用更好的方式帮助你。
发布于 2017-06-02 01:22:24
您可以在EDK中添加新的GPIO外设。然后使用GPIO将Recvd_Byte写入microblaze外部的信号中。所以:
#include "xparameters.h“#include "xgpio.h”XGpio Gpio;int main (void){ ...int Status;Status = XGpio_Initialize(&Gpio,XPAR_XPS_GPIO__DEVICE_ID);XGpio_SetDataDirection(&Gpio,1,0x00000000);XGpio_DiscreteWrite(&Gpio,1,Recvd_Byte );...返回0;}
1:https://i.stack.imgur.com/kAnCK.png:https://i.stack.imgur.com/fr0iG.png 2
https://stackoverflow.com/questions/23627287
复制相似问题