DSPRelated.com
Forums

CE2 access

Started by Adam Watkins November 28, 2002
Hi all,

I am using the daughtercard interface of the C6711 DSK to perform some data
input.

When I reset the daughtercard I see that the external memory space (CE2)
from address 0xA000000 holds random data. Without having my capture board
connected to the daughtercard interface I can verify this data using a logic
analyser.

I would like to clear this data in software before proceeding with data
capture when I have my capture board attached.

I can modify the contents of (the non-existent) memory location 0xA0000000
using the usual memory window techniques, but not through code such as;

#define CE2_Space
*(int *)CE2_Space = 0x0;

Anyone see what I am doing wrong?

Many thanks,

Adam Watkins



Adam-

Just a quick thought: did you try "volatile" keyword? The compiler might
optimize
out your write if it sees that you never read the data back. Smart compiler.

Jeff Brower
DSP sw/hw engineer
Signalogic Adam Watkins wrote:
>
> Hi all,
>
> I am using the daughtercard interface of the C6711 DSK to perform some data
> input.
>
> When I reset the daughtercard I see that the external memory space (CE2)
> from address 0xA000000 holds random data. Without having my capture board
> connected to the daughtercard interface I can verify this data using a logic
> analyser.
>
> I would like to clear this data in software before proceeding with data
> capture when I have my capture board attached.
>
> I can modify the contents of (the non-existent) memory location 0xA0000000
> using the usual memory window techniques, but not through code such as;
>
> #define CE2_Space
> *(int *)CE2_Space = 0x0;
>
> Anyone see what I am doing wrong?
>
> Many thanks,
>
> Adam Watkins
>
> _____________________________________
> Note: If you do a simple "reply" with your email client, only the author of
this message will receive your answer. You need to do a "reply all" if you want
your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join: Send an email to
>
> To Post: Send an email to
>
> To Leave: Send an email to
>
> Archives: http://www.yahoogroups.com/group/c6x
>
> Other Groups: http://www.dsprelated.com > ">http://docs.yahoo.com/info/terms/




Hi Jeff,

thanks for the response;

I recoded to

*(unsigned int*)0xa0000000 = 0x00000000;
The listing shows this as the generated code;

018000F8 ZERO .L1 A3 ; |39|
01D00069 MVKH .S1 0xa0000000,A3 ; |39|
000000F8 || ZERO .L1 A0 ; |39|
000C0274 STW .D1T1 A0,*A3 ; |39|

And it still isn't working!

Address space CE2 is configured in my dskinit.gel file as;
*(int *)EMIF_CE2 = 0x00000023;

I'm wondering if this is a silicon thing to do with the bus
transeivers.....

Cheers,

Adam

--- In c6x@y..., Jeff Brower <jbrower@s...> wrote:
> Adam-
>
> Just a quick thought: did you try "volatile" keyword? The
compiler might optimize
> out your write if it sees that you never read the data back. Smart
compiler.
>
> Jeff Brower
> DSP sw/hw engineer
> Signalogic > Adam Watkins wrote:
> >
> > Hi all,
> >
> > I am using the daughtercard interface of the C6711 DSK to perform
some data
> > input.
> >
> > When I reset the daughtercard I see that the external memory
space (CE2)
> > from address 0xA000000 holds random data. Without having my
capture board
> > connected to the daughtercard interface I can verify this data
using a logic
> > analyser.
> >
> > I would like to clear this data in software before proceeding
with data
> > capture when I have my capture board attached.




Adam-

> I recoded to
>
> *(unsigned int*)0xa0000000 = 0x00000000;

There really is a "volatile" keyword; I'm not kidding. Try:

*((volatile int*)0xa0000000) = 0;

But your asm. source looks like it should work; if so, then it's likely a memory
config problem.

Jeff Brower
DSP sw/hw engineer
Signalogic

> The listing shows this as the generated code;
>
> 018000F8 ZERO .L1 A3 ; |39|
> 01D00069 MVKH .S1 0xa0000000,A3 ; |39|
> 000000F8 || ZERO .L1 A0 ; |39|
> 000C0274 STW .D1T1 A0,*A3 ; |39|
>
> And it still isn't working!
>
> Address space CE2 is configured in my dskinit.gel file as;
> *(int *)EMIF_CE2 = 0x00000023;
>
> I'm wondering if this is a silicon thing to do with the bus
> transeivers.....
>
> Cheers,
>
> Adam
>
> --- In c6x@y..., Jeff Brower <jbrower@s...> wrote:
> > Adam-
> >
> > Just a quick thought: did you try "volatile" keyword? The
> compiler might optimize
> > out your write if it sees that you never read the data back. Smart
> compiler.
> >
> > Jeff Brower
> > DSP sw/hw engineer
> > Signalogic
> >
> >
> > Adam Watkins wrote:
> > >
> > > Hi all,
> > >
> > > I am using the daughtercard interface of the C6711 DSK to perform
> some data
> > > input.
> > >
> > > When I reset the daughtercard I see that the external memory
> space (CE2)
> > > from address 0xA000000 holds random data. Without having my
> capture board
> > > connected to the daughtercard interface I can verify this data
> using a logic
> > > analyser.
> > >
> > > I would like to clear this data in software before proceeding
> with data
> > > capture when I have my capture board attached.



Sorry Jeff,

I seem to have an inablitily to type at the moment. My source code is
indeed :

*(volatile int*)0xA0000000 = 0x00000000;

in mixed mode it is viewed as;

018000F8 ZERO .L1 A3 ; |39|
01D00069 MVKH .S1 0xa0000000,A3 ; |39|
000000F8 || ZERO .L1 A0 ; |39|
000C0274 STW .D1T1 A0,*A3 ; |39|

I also tried
*(unsigned volatile int*)

No luck there either. Wierd eh?
Additionally; the 3 little LEDs that do their little binary count due to the
P.O.S.T. have their outputs reflected in the CE2/CE3 address space.

many thanks,

Adam

>From: Jeff Brower <>
>Date: Mon, 02 Dec 2002 09:36:59 -0600
>
>Adam-
>
> > I recoded to
> >
> > *(unsigned int*)0xa0000000 = 0x00000000;
>
>There really is a "volatile" keyword; I'm not kidding. Try:
>
> *((volatile int*)0xa0000000) = 0;
>
>But your asm. source looks like it should work; if so, then it's likely a
>memory
>config problem.
>
> >
> > 018000F8 ZERO .L1 A3 ; |39|
> > 01D00069 MVKH .S1 0xa0000000,A3 ; |39|
> > 000000F8 || ZERO .L1 A0 ; |39|
> > 000C0274 STW .D1T1 A0,*A3 ; |39|
> >
> > And it still isn't working!
> >
> > Address space CE2 is configured in my dskinit.gel file as;
> > *(int *)EMIF_CE2 = 0x00000023;
> >
> > I'm wondering if this is a silicon thing to do with the bus
> > transeivers.....
> >
> > Cheers,
> >
> > Adam
> >

_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*.
http://join.msn.com/?pageatures/featuredemail



Adam:

Sorry if I'm being intrusive, but what are the values that you're
setting for the EMIF Global control register (0x01800000) and
EMIF SDRAM control register (0x01800018)? I'm venturing a guess
that this is SDRAM occupying CE2 (?). It may well be that this
has aleady been looked at, so please ignore..

I'm not familiar with the daughtercard interface for the 6711 DSK,
but we are working on a 6711 board at our place, with Micron SDRAM
occupying CE2. It is working, although it was a bit of work
selecting what values to use for the appropriate SDRAM part.

Just my two cents...

George -----Original Message-----
From: Adam Watkins [mailto:]
Sent: Wednesday, December 04, 2002 10:26 AM
To:
Cc:
Subject: Re: [c6x] Re: CE2 access (lack of) Sorry Jeff,

I seem to have an inablitily to type at the moment. My source code is
indeed :

*(volatile int*)0xA0000000 = 0x00000000;

in mixed mode it is viewed as;

018000F8 ZERO .L1 A3 ; |39|
01D00069 MVKH .S1 0xa0000000,A3 ; |39|
000000F8 || ZERO .L1 A0 ; |39|
000C0274 STW .D1T1 A0,*A3 ; |39|

I also tried
*(unsigned volatile int*)

No luck there either. Wierd eh?
Additionally; the 3 little LEDs that do their little binary count due to the
P.O.S.T. have their outputs reflected in the CE2/CE3 address space.

many thanks,

Adam

>From: Jeff Brower <>
>Date: Mon, 02 Dec 2002 09:36:59 -0600
>
>Adam-
>
> > I recoded to
> >
> > *(unsigned int*)0xa0000000 = 0x00000000;
>
>There really is a "volatile" keyword; I'm not kidding. Try:
>
> *((volatile int*)0xa0000000) = 0;
>
>But your asm. source looks like it should work; if so, then it's likely a
>memory
>config problem.
>
> >
> > 018000F8 ZERO .L1 A3 ; |39|
> > 01D00069 MVKH .S1 0xa0000000,A3 ; |39|
> > 000000F8 || ZERO .L1 A0 ; |39|
> > 000C0274 STW .D1T1 A0,*A3 ; |39|
> >
> > And it still isn't working!
> >
> > Address space CE2 is configured in my dskinit.gel file as;
> > *(int *)EMIF_CE2 = 0x00000023;
> >
> > I'm wondering if this is a silicon thing to do with the bus
> > transeivers.....
> >
> > Cheers,
> >
> > Adam
> >