Hey i have written a code. In that i am getting error of AUTO SEGMENT TOO LARGE....so wat does it mean.... i didnt understand meaning of term from the definition given at your site....
So pls tell me wat doess it mean... n how 2 remove this error... Pls rply soon....
hey i am having doubt that in xdata format i have to use indirect adressing...and in also mapping of memory we have 2 use specific range of adresses for particular data types...
But in C we are not using ANY PHYSICAL addressing...so will keil automatically converts xdata instruction as pointer???
ex. if i have written like this.. a=b;
where a=unsigned char and b=unsigned char xdata
so xdata will b automatically converted as pointer before moving content between internal ram and extended ram....
The Keil-specific keyword extensions tell the compiler what machine instructions to use to access the various memory spaces - see: http://www.keil.com/support/man/docs/c51/c51_le_memtypes.htm
data d_var; // Will be accessed using direct MOV instructions idata i_var; // Will be accessed using indirect MOV instructions xdata x_var; // Will be accessed using indirect MOVX @DPTR instructions
etc...
The Memory Model defines the default memory space that will be used if you do not explicitly define a memory space: http://www.keil.com/support/man/docs/c51/c51_le_memmodels.htm
For further details of the various memory areas (or memory spaces; or address spaces) see: http://www.keil.com/support/man/docs/c51/c51_le_memareas.htm
You should also be familiar with the so-called "bible" for the 8051 - links here: www.8052.com/.../120112
8051 Architecture Tutorials here: http://www.8052.com/tutorial
Books about programming in general, and 8051 programming in particular, here: http://www.keil.com/books/