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 |
|
CE2 access
Started by ●November 28, 2002
Reply by ●November 29, 20022002-11-29
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/ |
|
Reply by ●December 2, 20022002-12-02
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. |
|
Reply by ●December 2, 20022002-12-02
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. |
Reply by ●December 4, 20022002-12-04
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 |
|
Reply by ●December 5, 20022002-12-05
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 > > |