DSPRelated.com
Forums

how can i allocate a heap in SDRAM using .cdb file

Started by fx-7...@163.com August 23, 2010
hello!
i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure the pro, no assembly source file. thus , i don't no how to add the section, e.g. "my_sect", to the SDRAM, it's suggested by many friends that when a section is created, lines about it must be added to the .cmd, the command linker file, but when i try to modify the .cmd file, it's forbidden to change, which i guess is because i'm using the .cdb file to configure it.
so how can i modify the cmd file when using a .cdb file to configure the project?

in the project,i wrote these lines:
#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
is that correct?
P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS specification

i know the error is due to the reason that i didn't add lines to the .cmd file, but i don't know how to do it. could anyone give a help ?

thx in advance!

cathy

_____________________________________
Cathy,

The following example .cmd file:
MEMORY
{
PAGE 0 : BOOT(R) : origin = 0x3f8000, length = 0x80
PAGE 0 : PROG(R) : origin = 0x3f8080, length = 0x1f80
PAGE 0 : RESET(R) : origin = 0x3fffc0, length = 0x2

PAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400
PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400
PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000
}

SECTIONS
{
/* 22-bit program sections */
.reset : > RESET, PAGE = 0, TYPE = DSECT
.pinit : > PROG, PAGE = 0
.cinit : > PROG, PAGE = 0
.text : > PROG, PAGE = 0

/* 16-Bit data sections */
.const : > M0RAM, PAGE = 1
.bss : > M1RAM, PAGE = 1
.stack : > M1RAM, PAGE = 1
.sysmem : > M0RAM, PAGE = 1

/* 32-bit data sections */
.ebss : > L0L1RAM, PAGE = 1
.econst : > L0L1RAM, PAGE = 1
.esysmem : > L0L1RAM, PAGE = 1

.boot > BOOT
{
-lrts2800_ml.lib (.text)
}
}

-----------------
contains sections like .reset, .pinit, .cinit.
Your .cmd file needs to have a section named .sdram.
The line with the definition of the .sdram needs to indicate which memory (named area)
is to receive the m_abyBlockAllocate space as defined in the MEMORY part of the .cmd
file.
so the memory portion of the .cmd file would contain a line that describes the start
address and length of your SDRAM (external ram) area and indicate that external ram is
to be used for data (PAGE 1).

I.E.
in MEMORY
PAGE 1 : SDRAM origin=yyyyy length=xxxxx
where yyyyy is the starting address of the external SDRAM ram.
where xxxxx is the length in addresses of your external ram

in SECTIONS
.sdram : > SDRAM, PAGE = 1

I'm not so sure how to do this using the configuration tool as I never use that tool.

R. Williams

---------- Original Message -----------
From: f...@163.com
To: c...
Sent: Mon, 23 Aug 2010 06:20:09 -0400
Subject: [c6x] how can i allocate a heap in SDRAM using .cdb file

> hello!
> i'm using TMS320C6416 board doing a project which has to use so much
> sapce, so ISRAM may not be enough, then i use the SDRAM, but i'm just
> using the .cdb file to configure the pro, no assembly source file.
> thus , i don't no how to add the section, e.g. "my_sect", to the SDRAM,
> it's suggested by many friends that when a section is created, lines
> about it must be added to the .cmd, the command linker file, but when
> i try to modify the .cmd file, it's forbidden to change, which i guess
> is because i'm using the .cdb file to configure it. so how can i
> modify the cmd file when using a .cdb file to configure the project?
>
> in the project,i wrote these lines:
> #pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> Uint8 m_abyBlockAllocate[77 * 384]; //allocating
> buf is that correct?
> P.s. there's no error,but a warnig: creating output section .sdram
> without SECTIONS specification
>
> i know the error is due to the reason that i didn't add lines to the
> .cmd file, but i don't know how to do it. could anyone give a help ?
>
> thx in advance!
>
> cathy
------- End of Original Message -------

_____________________________________
Also include the following line:

-l automatically_generated.cmd from BIOS and add this cmd to the project.
The memory map would have already been defined in BIOS so you need not re-define it here.

Regards
Jagadeesh Sankaran

-----Original Message-----
From: c... [mailto:c...] On Behalf Of Richard Williams
Sent: Monday, August 23, 2010 12:40 PM
To: f...@163.com; c...
Subject: Re: [c6x] how can i allocate a heap in SDRAM using .cdb file

Cathy,

The following example .cmd file:
MEMORY
{
PAGE 0 : BOOT(R) : origin = 0x3f8000, length = 0x80
PAGE 0 : PROG(R) : origin = 0x3f8080, length = 0x1f80
PAGE 0 : RESET(R) : origin = 0x3fffc0, length = 0x2

PAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400
PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400
PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000
}

SECTIONS
{
/* 22-bit program sections */
.reset : > RESET, PAGE = 0, TYPE = DSECT
.pinit : > PROG, PAGE = 0
.cinit : > PROG, PAGE = 0
.text : > PROG, PAGE = 0

/* 16-Bit data sections */
.const : > M0RAM, PAGE = 1
.bss : > M1RAM, PAGE = 1
.stack : > M1RAM, PAGE = 1
.sysmem : > M0RAM, PAGE = 1

/* 32-bit data sections */
.ebss : > L0L1RAM, PAGE = 1
.econst : > L0L1RAM, PAGE = 1
.esysmem : > L0L1RAM, PAGE = 1

.boot > BOOT
{
-lrts2800_ml.lib (.text)
}
}

-----------------
contains sections like .reset, .pinit, .cinit.
Your .cmd file needs to have a section named .sdram.
The line with the definition of the .sdram needs to indicate which memory (named area)
is to receive the m_abyBlockAllocate space as defined in the MEMORY part of the .cmd
file.
so the memory portion of the .cmd file would contain a line that describes the start
address and length of your SDRAM (external ram) area and indicate that external ram is
to be used for data (PAGE 1).

I.E.
in MEMORY
PAGE 1 : SDRAM origin=yyyyy length=xxxxx
where yyyyy is the starting address of the external SDRAM ram.
where xxxxx is the length in addresses of your external ram

in SECTIONS
.sdram : > SDRAM, PAGE = 1

I'm not so sure how to do this using the configuration tool as I never use that tool.

R. Williams

---------- Original Message -----------
From: f...@163.com
To: c...
Sent: Mon, 23 Aug 2010 06:20:09 -0400
Subject: [c6x] how can i allocate a heap in SDRAM using .cdb file

> hello!
> i'm using TMS320C6416 board doing a project which has to use so much
> sapce, so ISRAM may not be enough, then i use the SDRAM, but i'm just
> using the .cdb file to configure the pro, no assembly source file.
> thus , i don't no how to add the section, e.g. "my_sect", to the SDRAM,
> it's suggested by many friends that when a section is created, lines
> about it must be added to the .cmd, the command linker file, but when
> i try to modify the .cmd file, it's forbidden to change, which i guess
> is because i'm using the .cdb file to configure it. so how can i
> modify the cmd file when using a .cdb file to configure the project?
>
> in the project,i wrote these lines:
> #pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> Uint8 m_abyBlockAllocate[77 * 384]; //allocating
> buf is that correct?
> P.s. there's no error,but a warnig: creating output section .sdram
> without SECTIONS specification
>
> i know the error is due to the reason that i didn't add lines to the
> .cmd file, but i don't know how to do it. could anyone give a help ?
>
> thx in advance!
>
> cathy
------- End of Original Message -------

_____________________________________

_____________________________________
hello,R.Williams and Jagadeesh Sankaran!
THX for both of you!

I solved the problem by adding a .cmd file of my own as you told me~ the warning disappeared, but when i load the project, it says that:

'Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.'

I go to ti.com to refer this, it says that in the Option->memory map, just uncheck the 'Enable memory mapping', i did it but when loading, another problem appears, it popup again and again a window,saying

'data verification failed at xxxxxxx(address), please verify target memory and memory map'

can i just manually change the NONE aera in memory map into RAM? or there is other way to solve it?
--------------------original txt----------------------------
hello!
>i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure the pro, no assembly source file. thus , i don't no how to add the section, e.g. "my_sect", to the SDRAM, it's suggested by many friends that when a section is created, lines about it must be added to the .cmd, the command linker file, but when i try to modify the .cmd file, it's forbidden to change, which i guess is because i'm using the .cdb file to configure it.
>so how can i modify the cmd file when using a .cdb file to configure the project?
>
>in the project,i wrote these lines:
>#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
>is that correct?
>P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS specification
>
>i know the error is due to the reason that i didn't add lines to the .cmd file, but i don't know how to do it. could anyone give a help ?
>
>thx in advance!
>
>cathy
>
>_____________________________________

_____________________________________
Cathy,

Now that you have your own .cmd file..
You can look at the DSP architecture and at your board architecture for external
memory/

For both the internal and external memory, you want to list the addresses in the .cmd
file as they actually are in the real world.

Both of the error messages indicate that the .cmd file has a memory area description
that is not correct.

One way to greatly help in the creation of the .cmd file is to take the .cmd file
produced by the configuration tool and/or the .cmd file that is automatically
generated.
then add the memory line needed for the external SDRAM and
add the segment line needed for your .sdram.

If you cannot resolve the problem, then post your .cmd file AND the address/length for
the external SDRAM.

R. Williams

---------- Original Message -----------
From: f...@163.com
To: c...
Sent: Mon, 23 Aug 2010 21:33:15 -0400
Subject: [c6x] Re: how can i allocate a heap in SDRAM using .cdb file

> hello,R.Williams and Jagadeesh Sankaran!
> THX for both of you!
>
> I solved the problem by adding a .cmd file of my own as you told
> me~ the warning disappeared, but when i load the project, it says that:
>
> 'Loader: One or more sections of your program falls into a memory
> region that is not writable. These regions will not actually be
> written to the target. Check your linker configuration and/or memory map.'
>
> I go to ti.com to refer this, it says that in the Option->memory
> map, just uncheck the 'Enable memory mapping', i did it but when
> loading, another problem appears, it popup again and again a window,saying
>
> 'data verification failed at xxxxxxx(address), please verify target
> memory and memory map'
>
> can i just manually change the NONE aera in memory map into RAM?
> or there is other way to solve it?
>
> --------------------original txt----------------------------
> hello!
> >i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM
may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure
the pro, no assembly source file. thus , i don't no how to add the section, e.g.
"my_sect", to the SDRAM, it's suggested by many friends that when a section is created,
lines about it must be added to the .cmd, the command linker file, but when i try to
modify the .cmd file, it's forbidden to change, which i guess is because i'm using the
.cdb file to configure it.
> >so how can i modify the cmd file when using a .cdb file to configure the project?
> >
> >in the project,i wrote these lines:
> >#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> > Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
> >is that correct?
> >P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS
specification
> >
> >i know the error is due to the reason that i didn't add lines to the .cmd file, but
i don't know how to do it. could anyone give a help ?
> >
> >thx in advance!
> >
> >cathy
> >
> >_____________________________________
> >
> >
------- End of Original Message -------

_____________________________________
cathy,

exactly what address is being indicated as unwritable?
is that address within the SDRAM RAM chip address map?

R. Williams

---------- Original Message -----------
From: f...@163.com
To: c...
Sent: Mon, 23 Aug 2010 21:33:15 -0400
Subject: [c6x] Re: how can i allocate a heap in SDRAM using .cdb file

> hello,R.Williams and Jagadeesh Sankaran!
> THX for both of you!
>
> I solved the problem by adding a .cmd file of my own as you told
> me~ the warning disappeared, but when i load the project, it says that:
>
> 'Loader: One or more sections of your program falls into a memory
> region that is not writable. These regions will not actually be
> written to the target. Check your linker configuration and/or memory map.'
>
> I go to ti.com to refer this, it says that in the Option->memory
> map, just uncheck the 'Enable memory mapping', i did it but when
> loading, another problem appears, it popup again and again a window,saying
>
> 'data verification failed at xxxxxxx(address), please verify target
> memory and memory map'
>
> can i just manually change the NONE aera in memory map into RAM?
> or there is other way to solve it?
>
> --------------------original txt----------------------------
> hello!
> >i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM
may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure
the pro, no assembly source file. thus , i don't no how to add the section, e.g.
"my_sect", to the SDRAM, it's suggested by many friends that when a section is created,
lines about it must be added to the .cmd, the command linker file, but when i try to
modify the .cmd file, it's forbidden to change, which i guess is because i'm using the
.cdb file to configure it.
> >so how can i modify the cmd file when using a .cdb file to configure the project?
> >
> >in the project,i wrote these lines:
> >#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> > Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
> >is that correct?
> >P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS
specification
> >
> >i know the error is due to the reason that i didn't add lines to the .cmd file, but
i don't know how to do it. could anyone give a help ?
> >
> >thx in advance!
> >
> >cathy
> >
> >_____________________________________
> >
> >
------- End of Original Message -------

_____________________________________
If you are loading on to an actual hardware board, then you have to check the memory map and make sure that this memory actually exists.

One simple check is in CCS window to write to this address and see if the value is getting modified. The reason you are getting this error, is because
data verification happens during download, where the value written back is read to verify that it is indeed written correctly, and if there is no valid memory on the hardware, then write fails.

Please check the memory map for the device and please provide the address, so I can provide a better answer.

Regards
JS

-----Original Message-----
From: c... [mailto:c...] On Behalf Of f...@163.com
Sent: Monday, August 23, 2010 8:33 PM
To: c...
Subject: [c6x] Re: how can i allocate a heap in SDRAM using .cdb file
hello,R.Williams and Jagadeesh Sankaran!
THX for both of you!

I solved the problem by adding a .cmd file of my own as you told me~ the warning disappeared, but when i load the project, it says that:

'Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.'

I go to ti.com to refer this, it says that in the Option->memory map, just uncheck the 'Enable memory mapping', i did it but when loading, another problem appears, it popup again and again a window,saying

'data verification failed at xxxxxxx(address), please verify target memory and memory map'

can i just manually change the NONE aera in memory map into RAM? or there is other way to solve it?
--------------------original txt----------------------------
hello!
>i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure the pro, no assembly source file. thus , i don't no how to add the section, e.g. "my_sect", to the SDRAM, it's suggested by many friends that when a section is created, lines about it must be added to the .cmd, the command linker file, but when i try to modify the .cmd file, it's forbidden to change, which i guess is because i'm using the .cdb file to configure it.
>so how can i modify the cmd file when using a .cdb file to configure the project?
>
>in the project,i wrote these lines:
>#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
>is that correct?
>P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS specification
>
>i know the error is due to the reason that i didn't add lines to the .cmd file, but i don't know how to do it. could anyone give a help ?
>
>thx in advance!
>
>cathy
>
>_____________________________________

_____________________________________

_____________________________________
hello Williams and JS!

if the 'enable memory mapping' is checked:
after loading,it's like this, the address 0x00Axxxxx seems not writable

00A84400 _c_int00:
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------
-------- -------- -- --------- ----------------

and if the 'enable memory mapping' is unchecked:
the error verification address is these:
0xA84180
0xA84D0C
0xA5AA74
0xA80E60
0xA82494
0xA3D980
0xA84DBC
0xA5AA80
0xA62A70
0xA6AA60
0xA7CD00
0xA83978
0xA824A0
0xA84900
0xA84A00
then in the message it will remind the error

Can't Set Breakpoint at 0xa6c2b8: Error 0x00000008/-1076 Error during: Break Point, Cannot set/verify breakpoint at 0x00A6C2B8 Sequence ID: 7 Error Code: -1076 Error Class: 0x00000008
Breakpoint Manager: Attempting to set a hardware breakpoint instead

it seems to me that the address around 0x00Axxxxx is the initial space for the execution of the whole project, is that right?

i use the 'memory edit' tool to write the memory, in the aera of 0x00Axxxxx, it can not chage value there

the *cfg.cmd file shows the memory partition

/* MODULE MEM */
-stack 0x400
MEMORY {
ISRAM : origin = 0x0, len = 0xe00000
SDRAM : origin = 0x80000000, len = 0x1000000
FLASH : origin = 0x64000000, len = 0x80000
BTW
i enlarge the space of my ISRAM, so i don't use SDRAM now, all the thing is put in ISRAM. so i go back to use the configuration tools.
-----------------original txt------------------------
hello!
>i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure the pro, no assembly source file. thus , i don't no how to add the section, e.g. "my_sect", to the SDRAM, it's suggested by many friends that when a section is created, lines about it must be added to the .cmd, the command linker file, but when i try to modify the .cmd file, it's forbidden to change, which i guess is because i'm using the .cdb file to configure it.
>so how can i modify the cmd file when using a .cdb file to configure the project?
>
>in the project,i wrote these lines:
>#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
>is that correct?
>P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS specification
>
>i know the error is due to the reason that i didn't add lines to the .cmd file, but i don't know how to do it. could anyone give a help ?
>
>thx in advance!
>
>cathy
>
>_____________________________________

_____________________________________
there is one more thing
when i enlarge the ISRAM from 0x00f00000 to 0x0f000000
and the heap size from 0x10000 to 0x0e200000
the unwritable space changed
from the 0x00Axxxxx to 0x0exxxxxx

does this has sth to with the heap?
what exactly is the heap?
in my understanding, it just a space used to store the user data, the BIOS/DSP configuration data is stored in the space:
ISRAM_length - heap_size
is this understanding correct?

p.s.
when will u online, it seems our time lag is totally upside down. i cannot always reply the message in time...

---------------------original txt-----------------
hello!
>i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure the pro, no assembly source file. thus , i don't no how to add the section, e.g. "my_sect", to the SDRAM, it's suggested by many friends that when a section is created, lines about it must be added to the .cmd, the command linker file, but when i try to modify the .cmd file, it's forbidden to change, which i guess is because i'm using the .cdb file to configure it.
>so how can i modify the cmd file when using a .cdb file to configure the project?
>
>in the project,i wrote these lines:
>#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
>is that correct?
>P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS specification
>
>i know the error is due to the reason that i didn't add lines to the .cmd file, but i don't know how to do it. could anyone give a help ?
>
>thx in advance!
>
>cathy
>
>_____________________________________

_____________________________________
Cathy,

There is no way to enlarge the ISRAM unless a different model of the DSP is used (which
just happens to have larger ISRAM area.

Please note the following excerpt from the 6416 architecture document.
D Highest-Performance Fixed-Point Digital D Two External Memory Interfaces (EMIFs)
Signal Processors (DSPs) − One 64-Bit (EMIFA), One 16-Bit
(EMIFB)
− 2-, 1.67-, 1.39-ns Instruction Cycle Time − Glueless Interface to Asynchronous
− 500-, 600-, 720-MHz Clock Rate Memories (SRAM and EPROM) and
− Eight 32-Bit Instructions/Cycle Synchronous Memories (SDRAM,
− Twenty-Eight Operations/Cycle SBSRAM, ZBT SRAM, and FIFO)
− 4000, 4800, 5760 MIPS − 1280M-Byte Total Addressable External
− Fully Software-Compatible With C62xTM Memory Space
− C6414/15/16 Devices Pin-Compatible D Enhanced Direct-Memory-Access (EDMA)
D Controller (64 Independent Channels)
VelociTI.2TM Extensions to VelociTITM
Advanced Very-Long-Instruction-Word D Host-Port Interface (HPI)
(VLIW) TMS320C64xTM DSP Core − User-Configurable Bus Width (32-/16-
Bit)
− Eight Highly Independent Functional
D 32-Bit/33-MHz, 3.3-V PCI Master/Slave
Units With VelociTI.2TM Extensions:
Interface Conforms to PCI Specification
2.2
− Six ALUs (32-/40-Bit), Each Supports
[C6415/C6416 ]
Single 32-Bit, Dual 16-Bit, or Quad
− Three PCI Bus Address Registers:
8-Bit Arithmetic per Clock Cycle
Prefetchable Memory
− Two Multipliers Support
Non-Prefetchable Memory I/O
Four 16 x 16-Bit Multiplies
− Four-Wire Serial EEPROM Interface
(32-Bit Results) per Clock Cycle or
− PCI Interrupt Request Under DSP
Eight 8 x 8-Bit Multiplies
Program Control
(16-Bit Results) per Clock Cycle
− DSP Interrupt Via PCI I/O Cycle
− Non-Aligned Load-Store Architecture
D Three Multichannel Buffered Serial
Ports
− 64 32-Bit General-Purpose Registers
− Direct I/F to T1/E1, MVIP, SCSA
Framers
− Instruction Packing Reduces Code Size
− Up to 256 Channels Each
− All Instructions Conditional
− ST-Bus-Switching-, AC97-Compatible
D Instruction Set Features
− Serial Peripheral Interface (SPI)
− Byte-Addressable (8-/16-/32-/64-Bit Data)
Compatible (MotorolaTM)
− 8-Bit Overflow Protection
D Three 32-Bit General-Purpose Timers
− Bit-Field Extract, Set, Clear
D Universal Test and Operations PHY
− Normalization, Saturation, Bit-Counting
Interface for ATM (UTOPIA)
[C6415/C6416]
− VelociTI.2TM Increased Orthogonality
− UTOPIA Level 2 Slave ATM Controller
D Viterbi Decoder Coprocessor (VCP) [C6416]
− 8-Bit Transmit and Receive Operations
− Supports Over 600 7.95-Kbps AMR
up to 50 MHz per Direction
− Programmable Code Parameters
− User-Defined Cell Format up to 64
Bytes
D Turbo Decoder Coprocessor (TCP) [C6416]
D Sixteen General-Purpose I/O (GPIO) Pins
− Supports up to 7 2-Mbps or
D Flexible PLL Clock Generator
43 384-Kbps 3GPP (6 Iterations)
− Programmable Turbo Code and D IEEE-1149.1 (JTAG)
Decoding Parameters Boundary-Scan-Compatible
D L1/L2 Memory Architecture D 532-Pin Ball Grid Array (BGA) Package
− 128K-Bit (16K-Byte) L1P Program Cache (GLZ, ZLZ and CLZ Suffixes), 0.8-mm
Ball
(Direct Mapped) Pitch
− 128K-Bit (16K-Byte) L1D Data Cache
D 0.13-μm/6-Level Cu Metal Process (CMOS)
(2-Way Set-Associative)
D 3.3-V I/Os, 1.2-V/1.25-V Internal (500
MHz)
− 8M-Bit (1024K-Byte) L2 Unified Mapped
D 3.3-V I/Os, 1.4-V Internal (600 and 720
MHz)
RAM/Cache (Flexible Allocation)

especially this line:
− 8M-Bit (1024K-Byte) L2 Unified Mapped

which states that there is only 1 meg (1048576 bytes)of iram,
not (as your .cmd file indicates)1.4680064 meg bytes.

Are you sure that your CCS setup, your config file setup, and your project parameters
are selecting the correct DSP?

R. Williams

---------- Original Message -----------
From: f...@163.com
To: c...
Sent: Tue, 24 Aug 2010 22:01:14 -0400
Subject: [c6x] Re: how can i allocate a heap in SDRAM using .cdb file

> hello Williams and JS!
>
> if the 'enable memory mapping' is checked:
> after loading,it's like this, the address 0x00Axxxxx seems not writable
>
> 00A84400 _c_int00:
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
> -------- -------- -- --------- ----------------
>
> and if the 'enable memory mapping' is unchecked:
> the error verification address is these:
> 0xA84180
> 0xA84D0C
> 0xA5AA74
> 0xA80E60
> 0xA82494
> 0xA3D980
> 0xA84DBC
> 0xA5AA80
> 0xA62A70
> 0xA6AA60
> 0xA7CD00
> 0xA83978
> 0xA824A0
> 0xA84900
> 0xA84A00
> then in the message it will remind the error
>
> Can't Set Breakpoint at 0xa6c2b8: Error 0x00000008/-1076 Error during:
> Break Point, Cannot set/verify breakpoint at 0x00A6C2B8 Sequence
> ID: 7 Error Code: -1076 Error Class: 0x00000008 Breakpoint Manager:
> Attempting to set a hardware breakpoint instead
>
> it seems to me that the address around 0x00Axxxxx is the initial space
> for the execution of the whole project, is that right?
>
> i use the 'memory edit' tool to write the memory, in the aera of
> 0x00Axxxxx, it can not chage value there
>
> the *cfg.cmd file shows the memory partition
>
> /* MODULE MEM */
> -stack 0x400
> MEMORY {
> ISRAM : origin = 0x0, len = 0xe00000
> SDRAM : origin = 0x80000000, len = 0x1000000
> FLASH : origin = 0x64000000, len = 0x80000
>
> BTW
> i enlarge the space of my ISRAM, so i don't use SDRAM now, all the
> thing is put in ISRAM. so i go back to use the configuration tools.
>
> -----------------original txt------------------------
> hello!
> >i'm using TMS320C6416 board doing a project which has to use so much sapce, so ISRAM
may not be enough, then i use the SDRAM, but i'm just using the .cdb file to configure
the pro, no assembly source file. thus , i don't no how to add the section, e.g.
"my_sect", to the SDRAM, it's suggested by many friends that when a section is created,
lines about it must be added to the .cmd, the command linker file, but when i try to
modify the .cmd file, it's forbidden to change, which i guess is because i'm using the
.cdb file to configure it.
> >so how can i modify the cmd file when using a .cdb file to configure the project?
> >
> >in the project,i wrote these lines:
> >#pragma DATA_SECTION(m_abyBlockAllocate,".sdram")
> > Uint8 m_abyBlockAllocate[77 * 384]; //allocating buf
> >is that correct?
> >P.s. there's no error,but a warnig: creating output section .sdram without SECTIONS
specification
> >
> >i know the error is due to the reason that i didn't add lines to the .cmd file, but
i don't know how to do it. could anyone give a help ?
> >
> >thx in advance!
> >
> >cathy
> >
> >_____________________________________
> >
> >
------- End of Original Message -------

_____________________________________