This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP memory space data/program

Hi, 

This is a basic question; can some one tell me how can I select to address either data or program space in DSP RAM memory?

Please Refer to  figure below  for 'C5402 memory map.

say that I want to address DSP on-chip RAM by an external device (through HPI), and I have two sections:

-- section A to be loaded on program memory start @ 0x100

-- section B to be loaded on data memory start @ 0x100


so how can I do that ? 


  • Hi Friends,


    Maybe my question was not clear.
    Okay I’m trying to explain better in this post :)

    Objective: address DSPC5402 program and data memory by an external host

    Problem: I’m confused about the program/data memory allocation on the DSP C5402 memory map.
    So, In the .cmd file (C54x tutorials) the memory allocation is like this:
    MEMORY
    {
        PAGE 0: EPROG:      origin = 0x1400,        len = 0x7c00
                VECT:       origin = 0xff80,        len = 0x0080

        PAGE 1: USERREGS:   origin = 0x60,          len = 0x1c
                BIOSREGS:   origin = 0x7c,          len = 0x4
                IDATA:      origin = 0x80,          len = 0x1380
                EDATA:      origin = 0x1400,        len = 0x8000
                EDATA1:     origin = 0x9400,        len = 0x4c00
    }


    Question1:

    PAGE 0 & PAGE 1 in MEMORY directive are the same as the
    Page 0 & Page 1 in program memory mapping? Or it’s just PAGE 0 means program memory mapping and PAGE 1 means data memory mapping?

    Question2:
    Look at Red lines, both EPROG [page0] and EDATA [page1] memory space has the same range.
    Does that means the data I write into EPROG are also in EDATA?

    Question3:

    say that I want to address the DSP on-chip RAM by an external device (through HPI), and I have two sections:
    -- section A to be loaded on EPROG space (@0x1400)
    -- section B to be loaded on data EDATA space(@0x1400)

    SO how can I perform that?


    I need more explanations please :)

  • Q1: Yes, the page 0/1 in the MEMORY directive are the same as the program memory mapping.  Yes, page 0 means program data and page 1 means data memory.

    Q2: No, the same address in PROG and DATA are not the same place.  For C54x, they are entirely separate memory areas.

    Q3: I'm sorry, I don't know what's involved in accessing these memories by external device.