How come there is obviously space (gap) in the memory, but when I declare the Test[10] between the 0x34 and 0x62 the program kept saying overlap and address overflow.
IDATA 0029H 000BH UNIT ?ID?XXACT_H 0034H 002FH *** GAP *** IDATA 0063H 0001H ABSOLUTE 0064H 0004H *** GAP *** IDATA 0068H 000AH ABSOLUTE 0072H 0001H *** GAP *** IDATA 0073H 0002H ABSOLUTE
unsigned char idata Test[10] _at_ 0x34; //new declare unsigned char idata Name[10] _at_ 0x68; unsigned int idata TestCH _at_ 0x73;
help~!
refar,
The 8051 doesn't have a separate idata space, but the 8052 does. I'm also willing to bet that we're not really talking about an original 8051, so using idata is a pretty safe bet. Still, perhaps not the best idea given than each byte of idata you use takes away from stack space, but such is life.
-Jay Daniel