• 0

confused on how to fill data in bram through axi_bram_controller


Made a simple zynq project, a small bram in PL and an axi bram controller connected to its port. The axi ip routed to axi interconnection without any complain. 

At SDK import a test BRAM application and it shows pass test. 

But I am still very confused how to access the data and addr in the BRAM. The AXI memory base add is 40000000 and high is 4000FFFF, does that  mean this is the memory address range I need to read and write?



Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

It sure sounds like it would mean that.  Don't forget, though, that this is a physical memory address and not a virtual memory address.  To get access to physical memory addresses, I often find myself opening /dev/kmem.  I may even request a local map via mmap of the portion of /dev/kmem I need.

Hope this helps,


Link to post
Share on other sites
  • 0

You are right.  I had thought you were trying to run a Linux application.  Honestly, I don't know the answer to your question.  Hopefully someone who does will pipe up.

But, while I'm here, let me make sure I understand: you say it passes a test BRAM application.  Do you have any source code or materials for that application?  Can you copy from it and learn from it that way?


Link to post
Share on other sites
  • 0

Unforturnaly it doesn't work.


u32 addr=Bram.Config.MemBaseAddress;

int cnt=0;


     xil_printf("At addr: %x\r\n",addr);







The program hangs at the second try of XBram_Out32 calling.

How can I fill the memory? Thanks a lot.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now