top | item 44551241

(no title)

conaclos | 7 months ago

I am currently working on an embedded system with 264Kb of RAM and 4Mb of flash. Do you think Lua could be used in such limited settings? I am also considering the berry scripting language [0].

[0] https://berry-lang.github.io/

discuss

order

zevv|7 months ago

That sounds like something the size of an ESP32.

Assuming your flash allows XIP (execute in place) so all that memory is available for your lua interpreter data, you should at least be able to run some code, but don't expect to run any heavy full applications on that. I don't know Berry but it sounds like a better fit for the scale of your device.

But sure, why not give it a try: Lua is usually easy to port to whatever platform, so just spin it up and see how it works for you!

conaclos|7 months ago

It is a RP2040. We plan to eventually upgrade to RP2350B.

mjevans|7 months ago

I haven't worked on a system that limited (not even OpenWRT routers) since a dev board in college.

The experience I had there might be your best bet for something productive. That board came with a 'limited C-like compiler' (took a mostly complete subset of C syntax and transcribed it to ASM).

You'll probably be doing a lot of things like executing in place from ROM, and strictly managing stack and scratch pad use.

The 64MB of RAM and 8MB (I assume that's 64Mbit) of ROM allow for highly liberating things like compressed executable code copied to faster RAM, modify in place code, and enough spare RAM otherwise to use scripting languages and large buffers for work as desired.

rleigh|7 months ago

It's more than generous. You can run it with much less resource utilisation than this. It only needs a few tens of kilobytes of flash (and you can cut it right back if you drop bits you don't need in the library code). 32 KiB is in the ballpark of what you need. As for RAM, the amount you need depends upon what your application requires, but it can be as little as 4-8 KiB, with needs growing as you add more library code and application logic and data.

If you compare this with what MicroPython uses, its requirements are well over an order of magnitude larger.

matt_trentini|7 months ago

Those are generous resources for MicroPython. And it'll be faster and less quirky to develop in than either Berry or Lua.