Hi,
I am using Microblaze v4 and here is a snippet of my code:
volatile unsigned int * a0 = (unsigned int *)0x80000680; void * ptr; ptr = &pktdsr;
asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (0), "r" (ptr)); asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (4), "r" (ptr)); asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (8), "r" (ptr)); asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (12), "r" (ptr)); asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (16), "r" (ptr)); asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (20), "r" (ptr)); asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (24), "r" (ptr)); asm("lwi r3, %0, %1;swi r3, %2, %1;" : : "r" (a0), "i" (28), "r" (ptr));
What I want is to read addresses 0x80000680 0x80000684 0x80000688 0x8000068c 0x80000690 ....
and write the data at pointer ptr, ptr+4, ptr+8, ...
Using chipscope I see MB reading 0x80000680 !!! 0x8000068A !!!!!!! 0x80000688 0x8000068c 0x80000690
so all addresses are correct less 0x8000068A.
Can anyone help me?
Regards, e