We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I'm trying to store data in the xdata memory location beginning at 0x000. What is wrong with my code?
typedef struct { unsigned int X1; unsigned int X2; unsigned int X3; }fordon; fordon xdata reg[10] _at_ 0x000; reg[0].X1 = 150; reg[0].X2 = 160; reg[0].X3 = 170; printf("X1 = %d, X2 = %d, X3 = %d",reg[0].X1,reg[0].X2,reg[0].X3);
As Keil support said you have to set up XRAM in the startup.A51(otherwise referred to as Start_AD.a51)
; On-chip XDATA RAM ; XRAMEN Val Description ; ------ --- ----------- XRAMEN EQU 1; 0 = disable on-chip XDATA RAM and access off-chip XDATA space ; ; 1 = enable on-chip XDATA RAM