[maemo-developers] Java acceleration/Jazelle

From: Simon Pickering S.G.Pickering at bath.ac.uk
Date: Wed Jul 18 13:01:23 EEST 2007
Hi Larry, 

> A couple thoughts from a former hardware hacker here: first, serial
> ports are your friend so if you can find a sacrificial device that has
> a cracked screen or some other serious but non- life-threatening
> defect you should probably invest in a level-shifter chip and a DB-9
> connector (and some soldering cleverness) to be able to communicate
> through the serial port.  Sending bytes back and forth that way is
> trivial and will allow you to seriously goof around with an otherwise
> worthless device at the kernel or bootloader level.

Yes, in an ideal world this would be nice, but I'm doing okay with ssh/sftp over
wifi for the time being. Out of interest, does the N800 actually have solder
points for a serial port at some known location?

>   The second thought is learn the ABI convention for calling C methods
> from assembly and you can pass whatever data you need to a function
> that will do the printing for you.  I'd suggest going with this route
> since it will be the most straightforward without soldering but also
> the least versatile.  --You may end up rebooting many, many times and
> the less overhead there is to initialize before playing around the
> faster you can try a new idea.  At any rate, I believe the ABI changed
> when we went to the armel format and so there's a handy description on
> changes to system calls and so forth here:
> http://wiki.debian.org/ArmEabiPort  Sorry if I'm pointing out anything
> that might be obvious, these are just things I had to work through
> when I was working on this type of thing on OS-less boards.

Thanks for that pointer, I'd forgotten about that page. It does say how
registers are passed (but I think it says to system calls rather than some
random function). I'll have to look at it again and do some more digging (and in
the meantime save the value of R14 to an array each time the handler code is
called, then print it out in C after the asm has completed). 

Does anyone know whether there are there any good docs/books on ARM asm
programming, telling people these sort of things? This is an interesting (and
hopefully useful) learning experience, but can be really frustrating when I know
what I want to do, and pretty much how to, but not quite! :) E.g. calling
functions in linked libraries, how to call .s file functions from C, what is and
isn't allowed in in-line asm, etc.

> Good luck!
> Larry



More information about the maemo-developers mailing list