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

Usage of DDPUSE

Hello,
i'm using the XC164-µC with internal Ram at 0xC000-0xC7FF (DSRAM) & 0xF600-0xFDFF (DPRAM).

When I use 'standard' Target Layout Memory.
I get a Linker Section NDATA(0xC000-0xC7FF,0xF600-0xFDFF)
and I could use 4k (-Stacksize) for NEAR DATA.

If I would use more than 16kB for NCONST I select 32kB
for ROM in NEAR MEMORY-Section(@Target-Layout).

In L166 LOCATE I get following line:
DPPUSE (0=NDATA(0xC000 - 0xC7FF), 1=NCONST(0xC00000 - 0xC07FFF))

The DPRAM (0xF600-0xFDFF) is now not used for NEAR DATA!

How can I use this RAM also for NEAR DATA like in the case without DPPUSE?

ciao, Karl

Ps:The XC164-16CS claims that it has 8kB internal Data.
But I only found 2kB DSRAM (0xC000-0xC7FF), 2kB DPRAM(0xF600-0xFDFF) and 2kB PSRAM (0xE00000-0xE007FF).
Where are the remaining 2kB located?

Parents
  • If you are only using the internal RAM for the stack then I would not change from the default memory configuration as the DSRAM and SPRAM are located as NEAR using DPP3.

    Perhaps there is a slight mistake in the Keil definition for the C164CS-16FF device as this should list 4KByte available for the SDRAM (0xC000 – 0xCFFF). The memory layout information is found in the System user's manual XC164 Memory Map (page 3-3).

    What you can do is uncheck the option to use the on-chip XRAM and then define an External RAM memory starting at 0xC000 with a size of 0x1000. Don't worry about the external RAM as you are really using the internal memory (DSRAM).

    Here is the listing from the map file for getting a 4Kbyte UserStack.

    START     STOP      LENGTH    TYPE  RTYP  ALIGN  TGR  GRP  COMB  CLASS   SECTION NAME
    ================================================================
    00C000H   00CFFFH   001000H   DATA  REL   WORD   ---    1  PUBL  NDATA   ?C_USERSTACK
    00F600H   00F61FH   000020H   DATA  REL   WORD   ---    1  PUBL  NDATA   ?C_USERSTACK1
    00F620H   00F63FH   000020H   DATA  REL   WORD   ---    1  PUBL  NDATA   ?C_USERSTACK2
    

    Hope that helps

Reply
  • If you are only using the internal RAM for the stack then I would not change from the default memory configuration as the DSRAM and SPRAM are located as NEAR using DPP3.

    Perhaps there is a slight mistake in the Keil definition for the C164CS-16FF device as this should list 4KByte available for the SDRAM (0xC000 – 0xCFFF). The memory layout information is found in the System user's manual XC164 Memory Map (page 3-3).

    What you can do is uncheck the option to use the on-chip XRAM and then define an External RAM memory starting at 0xC000 with a size of 0x1000. Don't worry about the external RAM as you are really using the internal memory (DSRAM).

    Here is the listing from the map file for getting a 4Kbyte UserStack.

    START     STOP      LENGTH    TYPE  RTYP  ALIGN  TGR  GRP  COMB  CLASS   SECTION NAME
    ================================================================
    00C000H   00CFFFH   001000H   DATA  REL   WORD   ---    1  PUBL  NDATA   ?C_USERSTACK
    00F600H   00F61FH   000020H   DATA  REL   WORD   ---    1  PUBL  NDATA   ?C_USERSTACK1
    00F620H   00F63FH   000020H   DATA  REL   WORD   ---    1  PUBL  NDATA   ?C_USERSTACK2
    

    Hope that helps

Children