Hi Bert,
I haven't done much with Lua yet, but I've plenty of experience with
embedded systems. Calling an interpreted language from an
interrupt running
at that speed sounds like a bad idea. 30 kHz is pretty fast - even
for an
ARM. Depending on the type of ARM and its clock speed, you have
something
like 1000 to 10000 clock cycles between interrupts. That's not a
lot when
you are running an interpreter. At best, you will use a large
proportion of
your cpu time, and will get very large jitter. In particular, garbage
collection may cause occasional extra delays.
If you really need to run lua scripts triggered by interrupts, you are
probably better off setting a flag in the interrupt routine, and
using that
to start the script from within your main loop.
mvh.,
David
----- Original Message -----
From: bert
To: Lua list
Sent: Monday, May 15, 2006 9:05 AM
Subject: Re: lua on ARM7
Hi All,
thanks a lot for the helpful replies. I tried compiling LUA and it
is true
that I end up at over 30K but less than 64K of code. that is
compiling in
thumb mode so I suspect that it will be even more if I try ARM
mode. I have
tried with the IAR EW compiler, still have to try the GCC.
Now, the firmware would be running LUA code in an interrupt. How
would this
be done to keep things thread-safe (nested interrupts?), and is it
realistic
to call a LUA function from an interrupt routine being called at
30kHz?
It somehow makes more sense to me to compile the LUA code on my
host PC to
something that can be run very efficiently on the ARM platform,
like native
code, but then I'm not sure how difficult it is to compile LUA code to
native ARM directly.
Thanks,
Bert
Luiz Henrique de Figueiredo <lhf@tecgraf.puc-rio.br> wrote:
What parts of the LUA source code do I need for making
this work and what can I safely remove?
This is for Lua 4.0, but may get you started:
http://www.lua.org/notes/ltn002.html
Yes, and Lua 5.x this is even easier. See etc/noparser.c
This will save you some 30% of the core code.
--lhf
Love cheap thrills? Enjoy PC-to-Phone calls to 30+ countries for
just 2¢/min
with Yahoo! Messenger with Voice.