DSPRelated.com
Forums

Memory layout

Started by mos_halas July 16, 2008
Dear all,

I'm new to the DSP programming. I'm using TMS320C6416 DSP. I want to
understand the on chip memory layout( i.e. what kind of data located
in each memory section such as .bss, .sysmem or heap, .cio, and .cinit)
So, can any one explain the difference between these memory sections
or at least guide me to a document that explains this issue??

Thanks a lot,
Mostafa Halas
Mostafa,

On Wed, Jul 16, 2008 at 4:55 AM, mos_halas wrote:
> Dear all,
>
> I'm new to the DSP programming. I'm using TMS320C6416 DSP. I want to
> understand the on chip memory layout( i.e. what kind of data located
> in each memory section such as .bss, .sysmem or heap, .cio, and .cinit)
> So, can any one explain the difference between these memory sections
> or at least guide me to a document that explains this issue??
These 2 docs will get you started. They are installed with CCS or you
get get the latest by searching ti.com for the 'spru186/7' number.

spru186 - assembler
spru187 - compiler

mikedunn
>
> Thanks a lot,
> Mostafa Halas

--
www.dsprelated.com/blogs-1/nf/Mike_Dunn.php
mos,

RTFM is often referenced when questions like these come up.

for specific information on each of the sections you ask about,
run CCS,
click Help
click Index
type in .bss (or what ever section your are interested in.)

here is an excerpt from the info on .bss:
-----------------
The .bss directive reserves space for variables in the .bss section. This directive is usually used
to allocate variables in RAM. The assembler follows two rules when it allocates space in the .bss
section:

Rule 1 Whenever a hole is left in memory (as shown in the figure below), the .bss directive attempts
to fill it. When a .bss directive is assembled, the assembler searches its list of holes left by
previous .bss directives and tries to allocate the current block into one of the holes. (This is the
standard procedure regardless of whether the blocking flag has been specified.)
Rule 2 If the assembler does not find a hole large enough to contain the block, it checks to see
whether the blocking option is requested. If you do not request blocking, the memory is allocated
at the current SPC. If you request blocking, the assembler checks to see whether there is enough
space between the current SPC and the page boundary. If there is not enough space, the assembler
creates another hole and allocates the space on the next page.
-----------------

R. Williams

---------- Original Message -----------
From: "mos_halas"
To: c...
Sent: Wed, 16 Jul 2008 09:55:10 -0000
Subject: [c6x] Memory layout

> Dear all,
>
> I'm new to the DSP programming. I'm using TMS320C6416 DSP. I want to
> understand the on chip memory layout( i.e. what kind of data located
> in each memory section such as .bss, .sysmem or heap, .cio, and .cinit)
> So, can any one explain the difference between these memory sections
> or at least guide me to a document that explains this issue??
>
> Thanks a lot,
> Mostafa Halas
------- End of Original Message -------
oops, sorry, I left out a step.

click Help
click Contents <-- missing step
click Index
...

R. Williams

---------- Original Message -----------
From: "mos_halas"
To: c...
Sent: Wed, 16 Jul 2008 09:55:10 -0000
Subject: [c6x] Memory layout

> Dear all,
>
> I'm new to the DSP programming. I'm using TMS320C6416 DSP. I want to
> understand the on chip memory layout( i.e. what kind of data located
> in each memory section such as .bss, .sysmem or heap, .cio, and .cinit)
> So, can any one explain the difference between these memory sections
> or at least guide me to a document that explains this issue??
>
> Thanks a lot,
> Mostafa Halas
------- End of Original Message -------