Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎11-03-2017

Code seems to mix with data in DDR



I am trying to write some data into the DDR associated with the ZYNQ PS. (This data eventually, will be partial bit-streams read from the SD Card.) It is not clear to me what data locations can be accessed.For example, it lets me write to location 0x0020_0000, but doesn't let me write to location 0x2000_0000.


Also, when I tried writing 1024 byte of  data starting from 0x0010_0000, it was successful. However, when I changed it to 10240 bytes(10KB), the program halted after the 3289th byte. I assume this happens because the data is being written into a place where the code also resides. I  suspect because the code doesn't run again until it its re-built. 


If the above is correct, how to identify the DDR addresses that can be written to? This also means how to avoid writing into location where the code resides. 


I have been using Xil_Out16() and Xil_In16() to write into and read from the DDR. Is this correct or is there any other way to access the DDR?

The DDR driver 'ddrps' only has the ddrps.h file. Where can the functions written in the driver be located; (lile ddrps.c)?


Thank You,


0 Kudos
0 Replies