Hi
I added axi interconnect, bram controller, and bram to Zynq for data transaction test.
I wanted to check whether data can read and write correct value.
Here is my C code to check it
/////////////////////////////////////////////////////////////
#define XPAR_BRAM_0_BASEADDR 0x40000000
#define BRAM_A XPAR_BRAM_0_BASEADDR
#include <stdio.h>
#include "platform.h"
void print(char *str);
int main()
{
init_platform();
print("Hello World1818
r");
// init_platform();
print("Hello World
r");
unsigned int val = 0xFFFFFFFF;
unsigned int val2 = 0x00000000;
unsigned int *addr_b = (unsigned int)BRAM_A;
printf("%X <- %X
", addr_b, val);
*addr_b = val;
printf("%X <- %X
", addr_b, val);
*addr_b = val2;
printf("%X <- %X
", addr_b, val2);
if ((*addr_b) == val) {
tprintf("SUCCESS
");
} else {
tprintf("FAIL (%d != %d)
", *addr_b, val);
}
return 0;
}
/////////////////////////////////////////////////////////////
I checked hello world is working well.
I was debugging with step in and step out the flow.
However, it stopped at the "*addr_b = val;"
Error message is that
--> Error while handling inferior event:
Remote failure reply : E01
Remote failre reply : E01
I checked bit file location and used correct bit file.
Does anyone know how to solve this problem?
thank you for reading this.
(I didn't say about DMA tutorial)
I found an example of DMA tutorial which can transfer data between DDR to BRAM or BRAM to BRAM or DDR to DDR.
This code also stopped at the pointer part which is
--> *(destination) = *(source);
I used Vivado 2013.3 version.