- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I'm using the Microtronix Multi-Port SDRAM controller for a 512 Mb mobile DDR on the Bemicro SDK board. I come to a problem just trying some simple read and write without DMA on the mobile DDR. The memory starts at 0x00000000, ends 0x03ffffff. I get faulty results when trying this piece of code :alt_printf("Writing to ram\n");
for (i=0;i<N;i++) {
IOWR_32DIRECT(RAM_BASE, i*4, (unsigned long)(i));
}
alt_printf("Reading ram\n");
for (i=0;i<N;i++) {
res_ram = IORD_32DIRECT(RAM_BASE, i*4);
if ((i)!=res_ram) {
alt_printf("%x = %x\n", i, res_ram);
}
}
Below is the result output, there is a print done when the result doesn't match what is expected from the writes : 0 = f800
100 = 0
800 = 0
c00 = 800
d00 = c00
1000 = 800
1100 = 1000
1400 = 1000
1500 = 1400
1800 = 1000
and keeps growing. I'm quite sure the pins are assigned properly, could this be related to timing issues, or something else? The results are similar with or without bursts. However, from compilation to compilation, the failing addresses aren't the same (never in the 2 LSB) but address 0 always fails. Thanks
Link Copied
0 Replies

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page