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

uVision2 Linker, memory for ICODE, FCODE...

Hi..
I use an infineon xc167ci without module. I program it using infineon memtool. I can erase the flash, but I cannot program it. On uVision2 "OPTIONS FOR TAGRGET TARGET1=>L166MISC" there is a linker control string determing how memory of the xc167ci is used. The memory location for program memory is 0xC00000 -> 0xC1FFFF(Datasheet), but uVision always writes some code to 0x018000 -> 0x01803B. I can see that in memtool. The linker control string allows e.g. FCODE, FCONST, HCONST,... to write something to this area. But memtool says error: check memory mapping. What do I have to do? Does that have anything to do with startup stuff, for I use no minimodul, so maybe there's something wrong with pu- or pd-resistors.

  • Hi Erwin,

    concerning the ON-CHIP FLASH, ensure
    you have set under "Options for Target" ->
    "Target" use on-chip ROM(128KB)
    use on-chip XRAM (0xC000-0xCFFF)

    If no external RAM or other memory the
    external memory entrys should be empty.
    Than under Linker -> "L166 Misc" only
    do the entry for the vector table as 0xC00000
    .
    Thats all.
    But please check your startup file to be sure EBC is enabled.
    At older versions the userstack was placed in NCODE area, so have look at M66-map file
    and use the USERSTACKDPP3 directive (C166 manual) if necessary.
    For the memtool check out you have selected the right target ( differences between step AA,AB ... )

    Stefan

  • Hi Stefan..
    Thanks for your answer.
    I have done as you said, but it did not help.
    EBC is enabled, and all uVision instructions are as you said they should be.
    As I checked the M66-File, I found out, that the main-routine is linked to 0x18002H

    018002H main LABEL --- FCODE ?PR? test

    The userstack is in 0x00C000H, what seems to be ok.
    What can I do to link the main-routine somewhere to 0x00C000H?

    And what are the differences between AB and AC in memtool?

    Thanks,
    Holger

  • Mhmm,

    did you set small memory model for your target ?
    I wonder that you have FCODE - that
    indicates that your program is an area located where normally a external memory would be.
    If you do it right than you will see
    NCODE ?PR?test.

    Userstack is ok.

    Otherwise I need your map file or
    some more informations.

    Stefan

  • No, the memory model is large.
    If you want you can mail your Email-Adress to

    eins12000@yahoo.de

    So I can send you the files you need.

    Erwin