|
On 7/14/2011 12:59 AM, James Graves wrote:
imo wrote:Hi, as the Lua is a virtual machine based, let me kindly ask you following: 1.would it be possible to allocate the vm “working space”, or some parts of it (e.g. tables, functions) to an external ram, accessible to Lua via a c-interface, like: long ram_rd( long address); void ram_wr(long address, long data); so we may use _any_ type of an external ram (e.g. serial spi sram, fram) for running Lua byte code of almost _any_size_ then?
The problem with this item is, the only serial SPI SRAM parts IIRC seems to be those two Microchip parts; 23A256 is 32KBytes only. Bigger 'uns and you'll start to need lots of I/O pins.
Might as well stick to a 32-bit part with >=64KB RAM. I bought a few recently, USD3.44 per piece. Nowadays it's hard to beat single-chip choices with a multiple chip scheme.
But if the OP can find FRAM of a few Mbits, I want to grab some too! :-)
2. is it even feasible to find such points in the Lua source code where we can interface such an external ram?? Or it would require an rewrite of the entire vm? This may enable to run even very large scripts on small ucontrollers (e.g. with flash>128kB and ram>16kB) when speed is not a priority.This will require significant changes to the Lua VM, and I don't think it will be worth the effort. You say speed is not a priority, but running Lua on a microcontroller _that_ small with so little memory will be very, very slow. [snip]
-- Cheers, Kein-Hong Man (esq.) Kuala Lumpur, Malaysia