[softwarelist] Re: The Beagle Has Landed

  • From: David Pilling <flist@xxxxxxxxxxxxxxxxxxx>
  • To: davidpilling@xxxxxxxxxxxxx
  • Date: Fri, 14 Aug 2009 11:39:30 +0100

In message <mpro.ko8muv0001wea0063.tim@xxxxxxxxx>, Tim Powys-Lybbe <tim@xxxxxxxxx> writes

OS.  Not that I would understand the answer, but are you able to
publicise what the problem was?  If it was an obscure feature of
SparkFS, I suppose we can hope that it is obscure enough that it does
not occur on other applications and thus not something to titivate us
with.

A word on the ARM chip is 32 bits or 4 bytes. Usually one loads words from a 4th. byte boundary i.e. address 0, 4, 8, etc. The question is what happens if one loads a word from another address like 1,2 or 3. Different ARM chips have different behaviours.

I have never gone in for such things, mostly because I was never really sure what the results would be.

The Zip module in Spark has to contend with loading words from arbitrary byte addresses so when it went wrong it seemed that the above would be the explanation. However the code avoids word access on non-word addresses.

Looking at archives produced on the beagle board it seemed that bytes were being scrambled in an area where compiled code was handling "shorts" i.e. 16 bit words.

A document on the RISC OS Open site shows different compiler flags should be used for different ARM chips, using:

-memaccess -L22-S22-L41

and recompiling the module, produced a version that worked.

The bottom line is that if you have a new ARM based computer and RISC OS running on it, then in general you're going to need all your software recompiling to run on it.



--
David Pilling
email: david@xxxxxxxxxxxxxxxxxxx
  web: http://www.davidpilling.net
 post: David Pilling P.O. Box 22 Thornton Cleveleys Blackpool. FY5 1LR UK
  fax: +44(0)870-0520-941


To unsubscribe or subscribe goto: //www.freelists.org/list/davidpilling

Other related posts: