This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to define variables in a range of external ram, and start at a fixed address

Do anybody know how can I define some variables in a range of external ram, and start at a fixed address ?

When I use IAR, I can do it in the following way :
----------------------------------
(In the ....h file)
#pragma memory=dataseg(E_XDATA)
EXTERN UINT16 Tot_Rx_Cnt;
EXTERN UINT16 Tot_Misc_Err;
EXTERN UINT16 Tot_Tout_Err;
#pragma memory=default
----------------------------------
(In the ....xcl file)
-Z(XDATA)E_XDATA=0000-00FF
----------------------------------

How can I do in order to achieve the same thing using Keil ?

Parents
  • Put the definitions of the variables into their own .c file, so that you get a single segment containing just those variables. Use the linker directives to assign the address you want to that segment. (See "SEGMENTS" for Lx51, or "XDATA", "DATA", etc for BL51.)

    The linker manual is part of the "Assembler/Utilities" manual.

Reply
  • Put the definitions of the variables into their own .c file, so that you get a single segment containing just those variables. Use the linker directives to assign the address you want to that segment. (See "SEGMENTS" for Lx51, or "XDATA", "DATA", etc for BL51.)

    The linker manual is part of the "Assembler/Utilities" manual.

Children