Above are found under the "SYMBOL TABLE OF MODULE" section of my generated map file. Question 1From the L251 user guide it is said that "the first 32 bytes of DATA memory (0x00-0x1F) is grouped into 4 banks of 8 registers each"Is it safe to assume then that REGSYM symbols above are in the DATA memory area?If yes, then how come it isnt explicitly written in the mapfileIf no, should I consider it a "linker symbol" then?Question 2What are LINE symbols? why some of it are in the ECODE memory class, why some are not indicated in the mapfile?Question 3How about BLOCK and BLOCKEND symbol? Could you explain what are these symbols?
dianne__ said:Is STK the stack symbol?
Yes. STKSYM is only used with the compiler directive FUNCTIONS(REENTRANT) (see http://www.keil.com/support/man/docs/c251/c251_functions.htm) or when the option 'Generate reentrant functions' is checked in the µVision dialog 'Options for Target - C251'.With this option, all parameters and all local non-register variables are located on the stack (addressed via SPX / DR60)
dianne__ said:If yes, I read here (http://www.keil.com/support/docs/1157.htm) that STACK is located in the EDATA memory class.
Yes, this is correct
dianne__ said:Then how come the address of the symbols above are beyond what was declared in CLASSES DIRECTIVE
The addresses above are stack-relative, not absolute. For example 'test1' has an offset of 0xFFFFFFF9. This is the negative number -7. You will probably see instructions like this in your LST file to address the local variable 'test1':
000004 793FFFFF MOV @DR60-0x7,WR6 ; test1
okay. thank you so much again for answering my questions :)