Reply by Marco Braga March 2, 20052005-03-02


Hi gangadhar,

> Branching is not happening to external
> memory.is there any info we are missing wt respect to program
> counter?bec PC value needs to changed from IRAM address to SDRAm
> address?can u plz help me out from this.

Are EMIF registers configured?

--
Best regards, Reply to:
Marco Braga
Insignis Technologies


Reply by Mike Dunn February 28, 20052005-02-28
Hi gangadhar80reddy,
 
Did Marco's suggestion of filling the delay slot after the branch work for you??
 
mikedunn

Marco Braga <m...@insignis.it> wrote:
Hi gangadhar80reddy,

Are you sure you simply don't need a "nop 5" after the branch
instruction?mvkl .s2 _c_int00,b0
mvkh .s2 _c_int00,b0
b b0
nop 5

If you don't do this, the random memory following the branch
instruction is executed as random instructions and this can disrupt
your branch.--
Best regards, Reply to:
Marco Braga m...@insignis.it
Insignis Technologies<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/c6x/

<*> To unsubscribe from this group, send an email to:
c...@yahoogroups.com

<*



Reply by Marco Braga February 26, 20052005-02-26


Hi gangadhar80reddy,

Are you sure you simply don't need a "nop 5" after the branch
instruction? mvkl .s2 _c_int00,b0
mvkh .s2 _c_int00,b0
b b0
nop 5

If you don't do this, the random memory following the branch
instruction is executed as random instructions and this can disrupt
your branch. --
Best regards, Reply to:
Marco Braga
Insignis Technologies


Reply by Bernhard 'Gustl' Bauer February 25, 20052005-02-25
Hi,

I'm not familiar with C6415, but I think this is similar for all C6000.

After boot you have to start c_int00. There some basic initilisation is
made, like setting SP and FP. Without these settings things like
function calls in C are not possible.

I would suggest you try simulator to go through this step by step.

HTH

Gustl

gangadhar80reddy wrote:
>
>
> We need to load an application to DSP memory and, boot and run the
> application on the DSP board without using JTAG through our Test
> application
>
> We are working with TMS 320C6415
>
> The DSP application is created using CCS. This small project has the
> code to glow the LED when the processor wakes up in the boot code
> (RESET vector in vector.asm). All the vector information is kept
> ISRAM and program information in SDRAM.(External Memory)
>
> Once the .out file is generated for this application, we split the
> Vector information and program information from .out file in the
> form of binary using TI utility hex6x and some board specific tools.
>
> A code snipplet from Vector.asm:
>
> RESET:
>
> mvkl 0x60000014,A4
> mvkh 0x60000014,A4
> mvkl 0x0000,b4
> mvkh 0x00230000,b4
> stw b4,*a4
> mvkl .s2 _c_int00,b0
> mvkh .s2 _c_int00,b0
> b b0
>
> The source code for this application contains:
> void main()
> {
>
> asm(" mvkl 0x60000014,A4");
> asm(" mvkh 0x60000014,A4");
> asm(" mvkl 0x0000,b4");
> asm(" mvkh 0x002f0000,b4");
> asm(" stw b4,*a4");
> asm(" nop");
> asm(" nop");
> asm(" nop");
> asm(" nop");
> asm(" nop");
> }
>
> In order to load this DSP application through our Test program we do
> the following at the Host PC through PCI interface( without JTAG):
> 1) Initialize EMIF settings through PCI
> 2) Vector information is written through PCI in ISRAM from 0x20
> (without Jtag)
> 3) Program information is wrtting through PCI in SDRAM from
> 0x80000000
> 4) Wakeup the DSP processor by setting DSPINT bit. > We observe that LED code in vector.asm gets executed but the
> branching to main does not take place and hence LED code inside main
> does not get executed.
> Could you please help us to understand why branching is not taking
> place?




Reply by gangadhar80reddy February 24, 20052005-02-24


We need to load an application to DSP memory and, boot and run the
application on the DSP board without using JTAG through our Test
application

We are working with TMS 320C6415

The DSP application is created using CCS. This small project has the
code to glow the LED when the processor wakes up in the boot code
(RESET vector in vector.asm). All the vector information is kept
ISRAM and program information in SDRAM.(External Memory)

Once the .out file is generated for this application, we split the
Vector information and program information from .out file in the
form of binary using TI utility hex6x and some board specific tools.

A code snipplet from Vector.asm:

RESET:

mvkl 0x60000014,A4
mvkh 0x60000014,A4
mvkl 0x0000,b4
mvkh 0x00230000,b4
stw b4,*a4
mvkl .s2 _c_int00,b0
mvkh .s2 _c_int00,b0
b b0

The source code for this application contains:
void main()
{

asm(" mvkl 0x60000014,A4");
asm(" mvkh 0x60000014,A4");
asm(" mvkl 0x0000,b4");
asm(" mvkh 0x002f0000,b4");
asm(" stw b4,*a4");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
asm(" nop");
}

In order to load this DSP application through our Test program we do
the following at the Host PC through PCI interface( without JTAG):
1) Initialize EMIF settings through PCI
2) Vector information is written through PCI in ISRAM from 0x20
(without Jtag)
3) Program information is wrtting through PCI in SDRAM from
0x80000000
4) Wakeup the DSP processor by setting DSPINT bit. We observe that LED code in vector.asm gets executed but the
branching to main does not take place and hence LED code inside main
does not get executed.
Could you please help us to understand why branching is not taking
place?