Hi Richard, Thanks a lot for all your support. I have fixed this problem. Actually, in my scatter file the alignment was correct but the Load address range of *.data section was overlapping with our IRAM_CODE section(code running from RAM). So load time, the *.data section was getting corrupted. I certified that all global data was getting corrupted. So I rectified the load addresses & now Image is running fine on target board. I have successully ported my project from ADS to GNU-ARM. Anybody need any help on this issue, mail me. Thanks everybody for support. Kanwal -----Original Message----- From: Richard Earnshaw [mailto:rearnsha@xxxxxxx] Sent: Friday, September 01, 2006 2:00 PM To: Kanwal Preet Singh CHANANA Cc: gcc-help@xxxxxxxxxxx; crossgcc@xxxxxxxxxxxxxxxxxx Subject: Re: Pointer allocation problem On Fri, 2006-09-01 at 05:08, Kanwal Preet Singh CHANANA wrote: > Hi all, > > I am porting my project from ADS to GCC_ARM v4.0.3. I have been able > to compile & Link my source files with GCC-ARM. The image (running in > Flash) crashes on target. The reason for crash is wrong pointer > allocation. > > I have used a pointer to a structure as shown below: > > typedef volatile struct UARTInfoTag > { > void (*rxInt_p) (void); > void (*txComplete_p) (void); > tUartLineStatusCallbackFunc lineStatusInt_p; > tBool NewRxData; > tBool IsTransmitting; > } UARTInfo; > > #define NUMBER_OF_UARTS 2 > > UARTInfo UARTCallBack[NUMBER_OF_UARTS]; > UARTInfo *pUARTInfo = &UARTCallBack[0]; > > UARTCallBack is located in RAM with &UARTCallBack[0]=0x000033C8, but > pUARTInfo contains the value 0x4B1D1BCA & pUARTInfo is located in RAM > at address 0x00001FCA. > ^^^^^^^^^^^ here's your problem. This isn't a 32-bit aligned address, so attempts to deference it as an aligned address will fail. Are you sure your scatter file is correctly aligning your rw and zi sections correctly? R.