problem with REG32() in IXP425
Hi,
I am sumanth, i am porting ecos to ixp 425 evaluation board of mine, but i am getting problem in the hal_interrupt_configure, where we have address calculation routine
*IXP425_GPIT1R = (*IXP425_GPIT1R & ~(7 << shift)) | (ival << shift);
*IXP425_GPISR |= (1 << vector);
where *IXP425_GPIT1R calls REG32 and it calculates the base address and the actual bytes from base address which should happen actually, and call the routine
#define REG32(a,b) ((volatile unsigned int *)((a)+(b)))
but in our case it is calling the routine
#define REG32(a,b) (b)
so we are only getting the no of bytes move from base, is there any problem with definition of _ASSEMBLER_
I am giving the snap shot of the code
xscale/cores/current/include/hal_xscale.h
#ifdef __ASSEMBLER__
#define REG8(a,b) (b)
#define REG16(a,b) (b)
#define REG32(a,b) (b)
#else /* __ASSEMBLER__ */
#define REG8(a,b) ((volatile unsigned char *)((a)+(b)))
#define REG16(a,b) ((volatile unsigned short *)((a)+(b)))
#define REG32(a,b) ((volatile unsigned int *)((a)+(b)))
extern void hal_xscale_core_init(void);
#endif /* __ASSEMBLER__ */
any pointers in this case are very helpful, and any one who worked on the ixp425 processor can help me by sharing their problem situations and how could they resolve them
Thanks & regards,
Sumanth.