DSPRelated.com
Forums

External Memory Access in C54x

Started by me_a...@yahoo.com December 10, 2007
Dear friend,

Hi,

I saw your yahoo ID in the C54x group and now ask some questions about my recent project. Please help me develop this project and solve my problems in some points.

I am working with this model of DSP: TMS320C54CST

I want to build some Telephony applications on it.

I want to build some large codes in the Code Composer 2.2 Env. and I wrote a primary random command file for it and it worked randomly either!!!! and I could load the .OUT file and run the program partly!!!!

I don't know how to write .CMD file for large codes that need external memories allocation for the program body.

There is less references for External Memory usage in the TI pdf's( for example C54x Assembly Language Tools file)

I have seen so many documents written about C54X dsp's but all of them were written on their own model like C5402 or C5406, etc.

My primary trials lead to build a .MAP file as the following(only summary):

Sec P ORG LEN(Size of Section)

.cinit 0 000014ff 00007f15

.vectors 0 0000ff80 00000064

.text 0 00011500 0000e9ad

.cio 0 00030080 00000120

.stack 0 000301a0 00000400

.sysmem 0 000305a0 00000400

.const 0 000309a0 000034eb

.bss 0 00033e8c 0000b754

.data 1 00000000 00000000

In the above table you see the size of sections that is main problem of allocation and should be solved.

Please help me how to work with Extended addressing like 0x20000 and what is difference between extended addressing and external addressing.

I have read the .GEL file for C54CST series and some following lines made confused me more and another questions appeared:

GEL_MapOn(); /* enable memory mapping */
GEL_MapReset(); /* reset memory map */

GEL_XMDef(0, 0x1E, 1, 0x8000, 0x7F);/* define extended mem. mapper register */
GEL_XMOn(); /* enable extended mem. mapping */

GEL_MapAdd(0x06000,0,0xA000 ,1,1);
GEL_MapAdd(0x18000,0,0x8000 ,1,1);

/* Data and I/O memory spaces */

GEL_MapAdd(0x0000, 0,0x10000,1,1); /* Data mem overlayed to program space */
GEL_MapAdd(0x0000, 1,0x10000,1,1); /* Data memory space */
GEL_MapAdd(0x0000, 2,0x10000,1,1); /* I/O space */

Please help me as much as you can.

I'm waiting for your answer

Best Regards

Mehdi Abolfathi

m...@yahoo.com