I'm beginning with a couple of my students to look at supporting a different VM on the NXT brick. We're planning to use as much code as we can from leJOS -- particularly the device drivers, but to replace the Java bytecode interpreter with one of our own, a version of the Keiko virtual machine that we use for compiler teaching in Oxford. I hope people won't mind if I ask a few questions here about system details that I haven't been able to discover from documents or by reading the code. In return, I'll post a few howto's about what we discover along the way.
My first question is this: Is there a limit on the size of the firmware? I see in NXJFlashUpdate.java that there's a constant MAX_FIRMWARE_PAGES that's set to 408 (in units of 256 bytes), but that constant varies from one version of leJOS to the next, so I'm guessing it just defines how much space is reserved, therefore where the filesystem starts in the flash. I see the native part of the firmware is coming in about 55K, so I wonder whether there's perhaps a 64K limit that matters? If not, then we will create our initial attempts by adding the bytecode interpreter for Keiko and keeping the JVM interpreter too, so that we can continue to use the Java-based menu system until we make one of our own. That will push us over 64K for a while!
Thanks in advance for any replies,
-- Mike Spivey
