ts-7000
[Top] [All Lists]

Re: [ts-7000] Re: pointer weirdness

To:
Subject: Re: [ts-7000] Re: pointer weirdness
From: David Hawkins <>
Date: Wed, 12 Sep 2007 11:22:21 -0700
Hi Yan,

> The one thing that puzzles me is that 32-bit access
> on a 16-bit boundary works fine....  I guess I
> don't understand the ARM hardware as well as I should.

I think the results of this type of access is
device specific, eg. some ARM registers say that
only 32-bit access is allowed. I think in general
though if you do an unaligned address read, it'll
return the right value, even if the hardware hides
the fact that it actually had to perform two reads
to get the data for you.

>> Run your test on an address in SDRAM which has
>> all 32-bits working, and byte-enables working,
>> and see if you get identical results.
> 
> How do I enable byte-enables?

They're supposed to be enabled for you. For example,
if you look on the TS-7300 schematic p2, the DQML, DQMH
signals on SDRAM are data-mask (DM) for the High and Low
bytes; since there is only DQM0 and DQM1 routing to
those pins, the SDRAM is configured for 16-bit access.

Now go to page 7 and look at the video SDRAM; the
DQM signals are tied low. So now a write to the SDRAM
always writes both words. What this means is that if you
write a byte to the video SDRAM, the other byte will
*also* get written, and its value will be garbage.

You also get this problem when interfacing SRAM
without byte-enables to processors that use them.

So, in your case, if the register you were playing with
was in say the FPGA, and the FPGA interface did not
respect byte-enables, then you'd only ever be able
to access the FPGA using 16-bit, or probably 32-bit
accesses, but not 8-bit accesses (unless the register
only used 8-bits).

> I'll have to write a small test proggie, but I gave up on assembler
> back in my IBM360 days...  It just doesn't agree with me...  :-(

You don't have to 'read it' so much as look at the
instructions to see whether they're 32-bit versions
versus 16-bit versions, versus 8-bit versions.
Then change the optimizer settings, and look again.

When you get a version that works versus doesnt-work,
you want to see what part of the the assembler code
changed made, and then you can figure out what is
probably happening.

Cheers,
Dave


 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
     
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU