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

Using XCROM and genarating a HEX file only for const messages

Hi,
I have a simple application such as a microcontroller having internal ROM, an ext. RAM placed from 0x8000-0xEFFF, and an EPROM placed from 0x0000 - 0x1FFF.
The EPROM is purposed to hold only display messages defined in the c code such as
char const xdata Message[] ="Hello";
I don't want to have any other code in that EPROM.
I want besides the genarated program code to have a separate HEX file for these messages ready for the EPROM. For example in format HEX-80.

How am I to configure the settings using uVison?

I have read the artıcles and the thread:
http://www.keil.com/forum/docs/thread2074.asp

Also, all related threads or similar.
However, I haven't understood: am I able to use XCONST type constants in an external memory and genarate a HEX file only containing them without having a code Banking?

So far some of my setings are as follow:
Checked boxes:
OPTIONS-Device-Use Extended Linker(LX51) instead of BL51
OPTIONS-Target-Use On Chip ROM(0x0-0xFFFF)
OPTIONS-Target-Off-chip Xdata Memory 0x8000 size 0x7000
OPTIONS-C51-Misc Controls: XCROM
OPTIONS-LX51 Locate-Use Memory Layout from Target Dialog checked
User Classes: XCONST (X:0x0000-X:0x3FFF)

Thanks in advance for your concern!

BR
Oktay

Parents
  • Hi Hans-Bernhard,

    Thanks for your quick reply and concern!
    Obviously it is better to have the code Banking rather than having a risky batch process. :)

    I just could't understand how to have a code Banking and place the constants defined as
    const xdata in a Bank.
    I don't want the processor to access to them with MOVC command.
    I want to have them accessed by MOVX.

    Also, do I need to include all the required LIB files such as XBANKING etc.?
    Basicaly, I didn't find a clarifying example on a simple application like this for C51.

    Could you help/guid me on this?

    Thanks in advance!

    Best regards
    Oktay

Reply
  • Hi Hans-Bernhard,

    Thanks for your quick reply and concern!
    Obviously it is better to have the code Banking rather than having a risky batch process. :)

    I just could't understand how to have a code Banking and place the constants defined as
    const xdata in a Bank.
    I don't want the processor to access to them with MOVC command.
    I want to have them accessed by MOVX.

    Also, do I need to include all the required LIB files such as XBANKING etc.?
    Basicaly, I didn't find a clarifying example on a simple application like this for C51.

    Could you help/guid me on this?

    Thanks in advance!

    Best regards
    Oktay

Children
  • "I just could't understand how to have a code Banking and place the constants defined as const xdata in a Bank."

    1. As previously mentioned, remove he 'xdata' - just put 'const'

    2. Forget about Code banking; that is something completely different, and not relevant here.

    "do I need to include all the required LIB files such as XBANKING etc.?"

    No, you don't.