DSPRelated.com
Forums

Using different types of memory

Started by andr...@gmail.com August 26, 2010
Hi all.

I've developped an algorithm, use of SPI and USB. For the sake of simplicity (and because I don't no very well about how things are working with respect to memory resources), I simply copied and adapted example code, in particular the DSP/BIOS configuration file. Then (because things were not working) I've put quite everything into SDRAM. I think I could obtain much better performance if I'd use the memory resources more wisely.

But, a) I don't know what to put where and b) I don't know how.

My algorithm is as follows (code and data size from linker map file of current version):
1. Acquistion (code size: 3 kbyte, data size: 11 kbyte)
2. Detection (code size: 9 kbyte, data size: 18 kbyte)
3. Tracking (code size: 20 kbyte, data size: 22 kbyte)
4. Transmission (code size: 2 kbyte, data size: 1 kbyte)
5. Restart at 1.

The rest of code/data memory (approx 1.5 MBytes) is due to DSP/BIOS/USB.

Is it possible to put everything on chip (I use C6747 on the OMAP-L137 EVM)? Where speed is really important are detection+tracking. There are quite a lot of data accesses.
If I could (but I don't know how), I would at least try to put everything necessary from DSP/BIOS and detection+tracking in IRAM (including data). The rest in cacheable section from SDRAM. Would this work? And if, how can I "split" my code such that one part goes in IRAM (code + data) another in SDRAM etc. (also w.r.t. DSP/BIOS stuff)?

Thank you very much for all your help.

Andreas

_____________________________________
Andreas,

The location of everything in memory is completely controlled by the .cmd file
contents.
So you need to search through the help info of CCS for all the details about the .cmd
file. (this can be a bit difficult to find and there is a LOT of the info that you
probably will never use.)

Since you are using the BIOS, the configuration tool produces a configuration file that
is used to produce the .cmd file.
So you need to search through all the configuration tool help info for the details.

A good place to start is to look at all the .cmd files contained in the CCS /examples
sub directory and on-line at Wikipedia.com and at ti.com.

R. Williams

---------- Original Message -----------
From: a...@gmail.com
To: c...
Sent: Thu, 26 Aug 2010 13:31:32 -0400
Subject: [c6x] Using different types of memory

> Hi all.
>
> I've developped an algorithm, use of SPI and USB. For the sake of
> simplicity (and because I don't no very well about how things are
> working with respect to memory resources), I simply copied and adapted
> example code, in particular the DSP/BIOS configuration file. Then
> (because things were not working) I've put quite everything into
> SDRAM. I think I could obtain much better performance if I'd use the
> memory resources more wisely.
>
> But, a) I don't know what to put where and b) I don't know how.
>
> My algorithm is as follows (code and data size from linker map file of
> current version):
> 1. Acquistion (code size: 3 kbyte, data size: 11 kbyte)
> 2. Detection (code size: 9 kbyte, data size: 18 kbyte)
> 3. Tracking (code size: 20 kbyte, data size: 22 kbyte)
> 4. Transmission (code size: 2 kbyte, data size: 1 kbyte)
> 5. Restart at 1.
>
> The rest of code/data memory (approx 1.5 MBytes) is due to DSP/BIOS/USB.
>
> Is it possible to put everything on chip (I use C6747 on the OMAP-L137
> EVM)? Where speed is really important are detection+tracking. There
> are quite a lot of data accesses. If I could (but I don't know how), I
> would at least try to put everything necessary from DSP/BIOS and
> detection+tracking in IRAM (including data). The rest in cacheable
> section from SDRAM. Would this work? And if, how can I "split" my code
> such that one part goes in IRAM (code + data) another in SDRAM etc.
> (also w.r.t. DSP/BIOS stuff)?
>
> Thank you very much for all your help.
>
> Andreas
------- End of Original Message -------

_____________________________________