Cortino

classic Classic list List threaded Threaded
15 messages Options
Dado Sutter Dado Sutter
Reply | Threaded
Open this post in threaded view
|

Cortino

Another eLua kit, in the popular Arduino format:

http://www.bugblat.com/products/cor.html

(Thanks Luiz de Barros !)

Abraçosssssssssssssss
Dado


_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
Jesus Alvarez Jesus Alvarez
Reply | Threaded
Open this post in threaded view
|

New Board with eLua Support - Micromint Eagle 50

The list of boards supporting eLua keeps growing!

Our Cortex-M3 product line was expanded in July with the release of the
Micromint Eagle 50 and 50E. Both support eLua and may be a good
alternative for some of your projects. They use the compact 100mm x 72mm
picoITX form factor and start below $50 with Ethernet and $45 without
Ethernet (qty 1). They are highly software compatible with the Micromint
Eagle 100 which supports PC/104 I/O expansion boards for projects
requiring additional I/O. Custom OEM versions are also available.

http://www.micromint.com/index.php/SBC/eagle-50.html

http://www.micromint.com/index.php/SBC/eagle-options.html

Regards,

Jesus Alvarez
Micromint USA
Tel 407-333-4799
Fax 407-333-4788

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
John Hind John Hind
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

How is this for Flash? 512KB has always been my personal benchmark threshold
and 256KB seems tight. Are you finding it adequate for eLua plus a network
stack, or are you having to swap in and out from the SD card? Is there
enough space left in the Flash for a serious application (Lua) or do you
need the SD card for that?

Any chance of a card using one of the 512KB ARM microcontrollers in the near
future?

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jesus Alvarez
Sent: 11 August 2009 20:53
To: eLua Users and Development List
Subject: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

The list of boards supporting eLua keeps growing!

Our Cortex-M3 product line was expanded in July with the release of the
Micromint Eagle 50 and 50E. Both support eLua and may be a good
alternative for some of your projects. They use the compact 100mm x 72mm
picoITX form factor and start below $50 with Ethernet and $45 without
Ethernet (qty 1). They are highly software compatible with the Micromint
Eagle 100 which supports PC/104 I/O expansion boards for projects
requiring additional I/O. Custom OEM versions are also available.

http://www.micromint.com/index.php/SBC/eagle-50.html

http://www.micromint.com/index.php/SBC/eagle-options.html

Regards,

Jesus Alvarez
Micromint USA
Tel 407-333-4799
Fax 407-333-4788

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
Jesus Alvarez Jesus Alvarez
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

John,

eLua with the default configuration and networking takes about 216 KB on
the Micromint Eagle boards. There are 8 KB reserved for the bootloader.
Swapping to the microSD card is normally not required. If your
application uses additional code beyond the remaining flash, one
alternative is to use the eLua configuration parameters to eliminate
functions that are not needed. 256 KB could be a limitation if your eLua
application also requires a medium size RTOS.

A constraint in the flash for the Micromint Eagle is the use of
TI/Luminary LM3S processors. They do not currently have a low cost 512KB
flash option. Yet that has not been a significant limitation for
customer applications. A large majority of standalone 32-bit embedded
applications that we have seen work well within 256 KB flash. In fact,
most 'C' applications can even add an RTOS and still have flash left.

We do have an AVR32-based controller in the works that will have the
option of 512 KB of flash, mainly because that option is available in
that MCU.

For applications with larger memory footprints we also offer an ARM9
controller with 64 MB of RAM and 512MB or 1 GB of NAND flash. It targets
applications using Linux but could be used for standalone applications
too. A new 400 MHz model of the Electrum line in the picoITX form factor
will be available for under $100 in about four weeks. I have not built
eLua for the ARM9 but will do at some point.

Regards,
Jesus Alvarez

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
John Hind John Hind
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

Thanks - yes, both good products! However there is an enormous gap in the
market between the two, at least in memory capacity. Unfortunately, for
eLua, the single chip options are still just a little tight in memory (both
flash and RAM) while the multi-chip ones work out too expensive (and
overkill) for the sort of radically distributed architectures I have in
mind. Although you can certainly run eLua as an academic or benchmarking
exercise in 256KB, as a practical engineer, I would not want my firmware to
be occupying 9/10ths of the available memory with the application grubbing
around in the last few KB!

Roll on ARM chips with 1MB Flash, 512KB RAM - that would really be an
enabler!

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jesus Alvarez
Sent: 12 August 2009 13:54
To: eLua Users and Development List
Subject: Re: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

John,

eLua with the default configuration and networking takes about 216 KB on
the Micromint Eagle boards. There are 8 KB reserved for the bootloader.
Swapping to the microSD card is normally not required. If your
application uses additional code beyond the remaining flash, one
alternative is to use the eLua configuration parameters to eliminate
functions that are not needed. 256 KB could be a limitation if your eLua
application also requires a medium size RTOS.

A constraint in the flash for the Micromint Eagle is the use of
TI/Luminary LM3S processors. They do not currently have a low cost 512KB
flash option. Yet that has not been a significant limitation for
customer applications. A large majority of standalone 32-bit embedded
applications that we have seen work well within 256 KB flash. In fact,
most 'C' applications can even add an RTOS and still have flash left.

We do have an AVR32-based controller in the works that will have the
option of 512 KB of flash, mainly because that option is available in
that MCU.

For applications with larger memory footprints we also offer an ARM9
controller with 64 MB of RAM and 512MB or 1 GB of NAND flash. It targets
applications using Linux but could be used for standalone applications
too. A new 400 MHz model of the Electrum line in the picoITX form factor
will be available for under $100 in about four weeks. I have not built
eLua for the ARM9 but will do at some point.

Regards,
Jesus Alvarez

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
jbsnyder jbsnyder
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

Noting this issue, I'm wondering if anyone has attempted to strip Lua  
or eLua down to a bare minimum to see how small it can get?  For  
situations where one may have prototyped on a device with either  
external flash, or more built-in flash and then wants to deploy with a  
less expensive part, it would be interesting to see how large eLua is  
when the compiler and other components that are non-essential for just  
running bytecode are removed?

It should even be possible to still do interactive development with  
the compiler removed using the RPC code (similar to the tethered  
interactive mode supported by Python on a Chip).

Another thing I've personally wondered about is whether inexpensive  
code or data compression algorithms might be usable?  I'm not sure how  
one would solve the issues this would cause with needing to hook flash  
reads through some sort of decompression scheme.  If one compresses a  
bin file for generic compile for lm3s6965 with gzip (NOT suggesting  
incorporating gzip, obviously it would need to be something very  
lightweight and low on RAM usage), the binary is quite a bit smaller:

-rwxr-xr-x  1 jsnyder  staff  218700 Aug  7 08:09 elua_lua_lm3s6965.bin
-rwxr-xr-x  1 jsnyder  staff  126879 Aug  7 08:09  
elua_lua_lm3s6965.bin.gz

The gzipped version is 58% the size of the original, so there's  
definitely some savings to be had in the code.

Just some things that have been rattling around in my brain, but I  
haven't had time to check feasibility of :-)

Side note:  These Micromint boards look quite nice, and are more  
affordable for a dev board than the eval kits :-)  Are you looking to  
produce any boards based on the 9B parts once they go into production?

-jsnyder


On Aug 12, 2009, at 8:39 AM, John Hind wrote:

> Thanks - yes, both good products! However there is an enormous gap  
> in the
> market between the two, at least in memory capacity. Unfortunately,  
> for
> eLua, the single chip options are still just a little tight in  
> memory (both
> flash and RAM) while the multi-chip ones work out too expensive (and
> overkill) for the sort of radically distributed architectures I have  
> in
> mind. Although you can certainly run eLua as an academic or  
> benchmarking
> exercise in 256KB, as a practical engineer, I would not want my  
> firmware to
> be occupying 9/10ths of the available memory with the application  
> grubbing
> around in the last few KB!
>
> Roll on ARM chips with 1MB Flash, 512KB RAM - that would really be an
> enabler!
>
> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]] On Behalf Of Jesus Alvarez
> Sent: 12 August 2009 13:54
> To: eLua Users and Development List
> Subject: Re: [eLua-dev] New Board with eLua Support - Micromint  
> Eagle 50
>
> John,
>
> eLua with the default configuration and networking takes about 216  
> KB on
> the Micromint Eagle boards. There are 8 KB reserved for the  
> bootloader.
> Swapping to the microSD card is normally not required. If your
> application uses additional code beyond the remaining flash, one
> alternative is to use the eLua configuration parameters to eliminate
> functions that are not needed. 256 KB could be a limitation if your  
> eLua
> application also requires a medium size RTOS.
>
> A constraint in the flash for the Micromint Eagle is the use of
> TI/Luminary LM3S processors. They do not currently have a low cost  
> 512KB
> flash option. Yet that has not been a significant limitation for
> customer applications. A large majority of standalone 32-bit embedded
> applications that we have seen work well within 256 KB flash. In fact,
> most 'C' applications can even add an RTOS and still have flash left.
>
> We do have an AVR32-based controller in the works that will have the
> option of 512 KB of flash, mainly because that option is available in
> that MCU.
>
> For applications with larger memory footprints we also offer an ARM9
> controller with 64 MB of RAM and 512MB or 1 GB of NAND flash. It  
> targets
> applications using Linux but could be used for standalone applications
> too. A new 400 MHz model of the Electrum line in the picoITX form  
> factor
> will be available for under $100 in about four weeks. I have not built
> eLua for the ARM9 but will do at some point.
>
> Regards,
> Jesus Alvarez
>
> _______________________________________________
> Elua-dev mailing list
> [hidden email]
> https://lists.berlios.de/mailman/listinfo/elua-dev
>
> _______________________________________________
> Elua-dev mailing list
> [hidden email]
> https://lists.berlios.de/mailman/listinfo/elua-dev
--
James Snyder
Biomedical Engineering
Northwestern University
[hidden email]
http://fanplastic.org/key.txt
ph: 847.448.0386





_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

smime.p7s (5K) Download Attachment
BogdanM BogdanM
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by Jesus Alvarez

I would not want my firmware to
be occupying 9/10ths of the available memory with the application grubbing
around in the last few KB!

Personally, I'd be quite OK with that if my firmware happens to be a quite complete programming environment, including a programming language and its corresponding virtual machine :)

Best,
Bogdan

 

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jesus Alvarez

Sent: 12 August 2009 13:54
To: eLua Users and Development List
Subject: Re: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

John,

eLua with the default configuration and networking takes about 216 KB on
the Micromint Eagle boards. There are 8 KB reserved for the bootloader.
Swapping to the microSD card is normally not required. If your
application uses additional code beyond the remaining flash, one
alternative is to use the eLua configuration parameters to eliminate
functions that are not needed. 256 KB could be a limitation if your eLua
application also requires a medium size RTOS.

A constraint in the flash for the Micromint Eagle is the use of
TI/Luminary LM3S processors. They do not currently have a low cost 512KB
flash option. Yet that has not been a significant limitation for
customer applications. A large majority of standalone 32-bit embedded
applications that we have seen work well within 256 KB flash. In fact,
most 'C' applications can even add an RTOS and still have flash left.

We do have an AVR32-based controller in the works that will have the
option of 512 KB of flash, mainly because that option is available in
that MCU.

For applications with larger memory footprints we also offer an ARM9
controller with 64 MB of RAM and 512MB or 1 GB of NAND flash. It targets
applications using Linux but could be used for standalone applications
too. A new 400 MHz model of the Electrum line in the picoITX form factor
will be available for under $100 in about four weeks. I have not built
eLua for the ARM9 but will do at some point.

Regards,
Jesus Alvarez

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
mind. Although you can certainly run eLua as an academic or benchmarking


_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
Dado Sutter Dado Sutter
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by Jesus Alvarez


On Wed, Aug 12, 2009 at 10:39, John Hind <[hidden email]> wrote:
Thanks - yes, both good products! However there is an enormous gap in the
market between the two, at least in memory capacity. Unfortunately, for
eLua, the single chip options are still just a little tight in memory (both
flash and RAM) while the multi-chip ones work out too expensive (and
overkill) for the sort of radically distributed architectures I have in
mind. Although you can certainly run eLua as an academic or benchmarking
exercise in 256KB, as a practical engineer, I would not want my firmware to
be occupying 9/10ths of the available memory with the application grubbing
around in the last few KB!

Roll on ARM chips with 1MB Flash, 512KB RAM - that would really be an
enabler!

It seems to me that they won't be too late to show up.
And the use of external memory and chips with internal controllers don't add that much to the final cost of a project, if we consider the big differentials that they can show on the current scenario.

Snyder's compression ideas are also interesting to consider but my feeling is that it will quickly become a problem of the past.

Best
Dado





_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
BogdanM BogdanM
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by jbsnyder


On Wed, Aug 12, 2009 at 7:27 PM, James Snyder <[hidden email]> wrote:
Noting this issue, I'm wondering if anyone has attempted to strip Lua or eLua down to a bare minimum to see how small it can get?  

That's one of my next steps. I bet I can make it run properly in 128k of Flash, but with quite a few tweaks:

- (obviously) strip out any unneeded libraries
- remove the parser and run your LuaRPC that will only execute bytecode
- maybe replace the (part of) libc with our implementation
- remove everything related to floating point (not only the math lib, but also the floating point emulation library itself).

I already got a very small, inexpensive AT91SAM7X128 header bord and I'll work with that.
 
For situations where one may have prototyped on a device with either external flash, or more built-in flash and then wants to deploy with a less expensive part, it would be interesting to see how large eLua is when the compiler and other components that are non-essential for just running bytecode are removed?

Ah, OK, so we're following the same path of thought here :)
 
It should even be possible to still do interactive development with the compiler removed using the RPC code (similar to the tethered interactive mode supported by Python on a Chip).

OK, I swear that I wrote the first paragraph without reading your ideas :) Once again, nice to see that we're following the same path.
 
Another thing I've personally wondered about is whether inexpensive code or data compression algorithms might be usable?  

They're kinda useless in this case, I think, as you need to decompress your code somewhere. If you need to decompress to internal Flash, you made the problem worse, since you now have less space because of your compressed firmware. If you have external Flash and/or RAM, you probably don't have a space problem in the first place :) If you have external Flash you can execute from there, and the case of RAM > Flash is quite rare in practice.
 
Best,
Bogdan


On Aug 12, 2009, at 8:39 AM, John Hind wrote:

Thanks - yes, both good products! However there is an enormous gap in the
market between the two, at least in memory capacity. Unfortunately, for
eLua, the single chip options are still just a little tight in memory (both
flash and RAM) while the multi-chip ones work out too expensive (and
overkill) for the sort of radically distributed architectures I have in
mind. Although you can certainly run eLua as an academic or benchmarking
exercise in 256KB, as a practical engineer, I would not want my firmware to
be occupying 9/10ths of the available memory with the application grubbing
around in the last few KB!

Roll on ARM chips with 1MB Flash, 512KB RAM - that would really be an
enabler!

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jesus Alvarez
Sent: 12 August 2009 13:54
To: eLua Users and Development List
Subject: Re: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

John,

eLua with the default configuration and networking takes about 216 KB on
the Micromint Eagle boards. There are 8 KB reserved for the bootloader.
Swapping to the microSD card is normally not required. If your
application uses additional code beyond the remaining flash, one
alternative is to use the eLua configuration parameters to eliminate
functions that are not needed. 256 KB could be a limitation if your eLua
application also requires a medium size RTOS.

A constraint in the flash for the Micromint Eagle is the use of
TI/Luminary LM3S processors. They do not currently have a low cost 512KB
flash option. Yet that has not been a significant limitation for
customer applications. A large majority of standalone 32-bit embedded
applications that we have seen work well within 256 KB flash. In fact,
most 'C' applications can even add an RTOS and still have flash left.

We do have an AVR32-based controller in the works that will have the
option of 512 KB of flash, mainly because that option is available in
that MCU.

For applications with larger memory footprints we also offer an ARM9
controller with 64 MB of RAM and 512MB or 1 GB of NAND flash. It targets
applications using Linux but could be used for standalone applications
too. A new 400 MHz model of the Electrum line in the picoITX form factor
will be available for under $100 in about four weeks. I have not built
eLua for the ARM9 but will do at some point.

Regards,
Jesus Alvarez

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

--
James Snyder
Biomedical Engineering
Northwestern University
[hidden email]
http://fanplastic.org/key.txt
ph: 847.448.0386





_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev



_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
jbsnyder jbsnyder
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50


On Aug 12, 2009, at 11:42 AM, Bogdan Marinescu wrote:

> On Wed, Aug 12, 2009 at 7:27 PM, James Snyder  
> <[hidden email]> wrote:
> Noting this issue, I'm wondering if anyone has attempted to strip  
> Lua or eLua down to a bare minimum to see how small it can get?
>
> That's one of my next steps. I bet I can make it run properly in  
> 128k of Flash, but with quite a few tweaks:
>
> - (obviously) strip out any unneeded libraries
> - remove the parser and run your LuaRPC that will only execute  
> bytecode
> - maybe replace the (part of) libc with our implementation
> - remove everything related to floating point (not only the math  
> lib, but also the floating point emulation library itself).
>
> I already got a very small, inexpensive AT91SAM7X128 header bord and  
> I'll work with that.
>
> For situations where one may have prototyped on a device with either  
> external flash, or more built-in flash and then wants to deploy with  
> a less expensive part, it would be interesting to see how large eLua  
> is when the compiler and other components that are non-essential for  
> just running bytecode are removed?
>
> Ah, OK, so we're following the same path of thought here :)
>
> It should even be possible to still do interactive development with  
> the compiler removed using the RPC code (similar to the tethered  
> interactive mode supported by Python on a Chip).
>
> OK, I swear that I wrote the first paragraph without reading your  
> ideas :) Once again, nice to see that we're following the same path.
:-)

I think I can even shave some code off of the RPC code if I go through  
and think about cleaning up the way it's set up with exceptions.  I  
have at least a few more critical todos on the list for that code,  
like at least making it so that it isn't necessary to open a serial  
link and do: lua\r rpc.server()\r to start it up. :-)

>  Another thing I've personally wondered about is whether inexpensive  
> code or data compression algorithms might be usable?
>
> They're kinda useless in this case, I think, as you need to  
> decompress your code somewhere. If you need to decompress to  
> internal Flash, you made the problem worse, since you now have less  
> space because of your compressed firmware. If you have external  
> Flash and/or RAM, you probably don't have a space problem in the  
> first place :) If you have external Flash you can execute from  
> there, and the case of RAM > Flash is quite rare in practice.
I'd assume you'd need some sort of MMU to make this work correctly,  
but I was thinking of something along the lines of a mechanism that  
would allow in-place usage, no LZ stream type stuff with a buffer. I'm  
thinking something like RLE &/or additional pre-computed de-
duplication with a static memory map.  Dictionary size might become a  
problem, but I'd assume there's a balance somewhere (and someone's  
probably done this before).  With this, you would have previously  
checked if there's duplicated code and the lookup would then just  
point to to the common definition of that.  This said, I assume you  
need hardware to make these sorts of acrobatics reasonable.

Also, it might be that a stream algorithm like ones derived from  
Lempel-Ziv could be useful for Lua bytecode or scripts if memory usage  
could be kept to a minimum.  It would be pretty easy to hook the chunk  
loading code to apply something like this when something is on its way  
in or out of the VM.  I think the benefits there might be worth it if,  
say, LZ77/LZ78 works with a rather tiny buffer size (256 bytes or 512  
bytes?).  Either that, or perhaps huffman coding if the entropy in  
code or bytecode is significantly less than 8 real bits of data per  
byte.

*shrug*  It's on my mind because I listened to this a few weeks ago,  
and there was some explanation of how these algorithms work: http://www.twit.tv/sn205



--
James Snyder
Biomedical Engineering
Northwestern University
[hidden email]
http://fanplastic.org/key.txt
ph: 847.448.0386





_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

smime.p7s (5K) Download Attachment
Jesus Alvarez Jesus Alvarez
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by jbsnyder
> Noting this issue, I'm wondering if anyone has attempted
> to strip Lua or eLua down to a bare minimum to see how small
> it can get?

Dean Hall posted a message in January reporting he was able to go as low
as 64 KB flash building eLua without networking for the AT91SAM7S
platform. The subject was "reducing rom size".

> These Micromint boards look quite nice, and are more affordable
> for a dev board than the eval kits :-)  Are you looking to
> produce any boards based on the 9B parts once they go into production?

Thanks. Yes. We are committed to the LM3S MCUs and will eventually offer
a Micromint Eagle board with the 9B microcontroller. Due to MCU
availability, it is unlikely this will occur before the end of the year.

Regards,
Jesus Alvarez

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
John Hind John Hind
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by BogdanM

Bogdan, no way I intended to disparage your superb work on eLua. Of course it is an achievement of note to get this much functionality into such a tight space. However in application terms it is still a platform not a solution so actually using it in a real project is going to be limited by only having a few tens of KB of application space. The more functionality the platform offers the more we’re going to want to do with it and the more application space we’ll need!

 

Make no mistake, eLua will be great, but it just needs the hardware to mature maybe another year or so to be ready for real-world application. Of course the separate memory solution is viable for centralised architectures with excellent boards like the Electrum, but then you are out of eLua’s USP – you have plenty of resources to run standard Lua on Linux.

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan Marinescu
Sent: 12 August 2009 17:35
To: eLua Users and Development List
Subject: Re: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

 

 

I would not want my firmware to
be occupying 9/10ths of the available memory with the application grubbing
around in the last few KB!


Personally, I'd be quite OK with that if my firmware happens to be a quite complete programming environment, including a programming language and its corresponding virtual machine :)

Best,
Bogdan

 

 

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jesus Alvarez

 

Sent: 12 August 2009 13:54
To: eLua Users and Development List

Subject: Re: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

John,

eLua with the default configuration and networking takes about 216 KB on
the Micromint Eagle boards. There are 8 KB reserved for the bootloader.
Swapping to the microSD card is normally not required. If your
application uses additional code beyond the remaining flash, one
alternative is to use the eLua configuration parameters to eliminate
functions that are not needed. 256 KB could be a limitation if your eLua
application also requires a medium size RTOS.

A constraint in the flash for the Micromint Eagle is the use of
TI/Luminary LM3S processors. They do not currently have a low cost 512KB
flash option. Yet that has not been a significant limitation for
customer applications. A large majority of standalone 32-bit embedded
applications that we have seen work well within 256 KB flash. In fact,
most 'C' applications can even add an RTOS and still have flash left.

We do have an AVR32-based controller in the works that will have the
option of 512 KB of flash, mainly because that option is available in
that MCU.

For applications with larger memory footprints we also offer an ARM9
controller with 64 MB of RAM and 512MB or 1 GB of NAND flash. It targets
applications using Linux but could be used for standalone applications
too. A new 400 MHz model of the Electrum line in the picoITX form factor
will be available for under $100 in about four weeks. I have not built
eLua for the ARM9 but will do at some point.

Regards,
Jesus Alvarez

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

mind. Although you can certainly run eLua as an academic or benchmarking

 


_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
BogdanM BogdanM
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by Jesus Alvarez


On Wed, Aug 12, 2009 at 8:33 PM, Jesus Alvarez <[hidden email]> wrote:
> Noting this issue, I'm wondering if anyone has attempted
> to strip Lua or eLua down to a bare minimum to see how small
> it can get?

Dean Hall posted a message in January reporting he was able to go as low
as 64 KB flash building eLua without networking for the AT91SAM7S
platform. The subject was "reducing rom size".

Ah, you're right, I forgot about that. So, there you go, you can have eLua (just) under 64k (although I think that this is indeed mostly didactic, not truly functional from an engineering point of view). In that case though, the limiting factor there wasn't the 64k of Flash, but rather the 16k of RAM of the MCU used there. I do plan running eLua on more and more resource-constrained micros in the future, but I can't foresee how low I can go (sort of speaking :)).
 
Thanks. Yes. We are committed to the LM3S MCUs and will eventually offer
a Micromint Eagle board with the 9B microcontroller. Due to MCU
availability, it is unlikely this will occur before the end of the year.

I think you can me put me on the list for one of those :) I'm quite curious to get better acquinted with their new MCU line.

Best,
Bogdan


_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
BogdanM BogdanM
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by BogdanM

Bogdan, no way I intended to disparage your superb work on eLua.


Ah, don't worry, I didn't feel even slightly offended, or even discouraged. Is quite hard to offend me :) I can fully understand your point of view, and I'm interested in hearing different oppinions, I generally learn a lot from such discussions.
 

Of course it is an achievement of note to get this much functionality into such a tight space. However in application terms it is still a platform not a solution so actually using it in a real project is going to be limited by only having a few tens of KB of application space. The more functionality the platform offers the more we’re going to want to do with it and the more application space we’ll need!

Yes and no. The more functionality the platform offers, the more you'll get for free from your platform, so your application will need less code. For example, you won't need to write a filesystem driver, or to initialize all your peripherals, or to implement queues or specific data structures, and others. There is a point of equilibrium here for many practical applications.

 Make no mistake, eLua will be great, but it just needs the hardware to mature maybe another year or so to be ready for real-world application.

It depends on how you define "real-world applications". Personally, I don't see eLua being used in very complex and/or large applications, but rather in small/medium-sized embedded systems based on medium complexity micros (in areas like home automation, simple robotics, data loggers, stuff like this). I wrote quite a few such applications that could be re-written with eLua with half the development time I needed to write them in C, setup the environment, burn the flash everytime I made a change, debugging with LEDs because I couldn't affod a hardware debugger and all the other hassels associated with embedded development.
 

Of course the separate memory solution is viable for centralised architectures with excellent boards like the Electrum, but then you are out of eLua’s USP – you have plenty of resources to run standard Lua on Linux.

Exactly, and I don't see a future for eLua in this scenario. If your application is complex enough to require a full-blown OS like (uC)Linux, you'll most certainly be able to develop in regular Lua. eLua tries to be as friendly as possible with much smaller systems, and it has a series of tweaks (including the LTR, which might evolve even further in the future) designed to do precisely this.

Best,
Bogdan

 

 

From: [hidden email] [mailto:[hidden email]] On Behalf Of Bogdan Marinescu
Sent: 12 August 2009 17:35


To: eLua Users and Development List
Subject: Re: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

 

 

I would not want my firmware to
be occupying 9/10ths of the available memory with the application grubbing
around in the last few KB!


Personally, I'd be quite OK with that if my firmware happens to be a quite complete programming environment, including a programming language and its corresponding virtual machine :)

Best,
Bogdan

 

 

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Jesus Alvarez

 

Sent: 12 August 2009 13:54
To: eLua Users and Development List

Subject: Re: [eLua-dev] New Board with eLua Support - Micromint Eagle 50

John,

eLua with the default configuration and networking takes about 216 KB on
the Micromint Eagle boards. There are 8 KB reserved for the bootloader.
Swapping to the microSD card is normally not required. If your
application uses additional code beyond the remaining flash, one
alternative is to use the eLua configuration parameters to eliminate
functions that are not needed. 256 KB could be a limitation if your eLua
application also requires a medium size RTOS.

A constraint in the flash for the Micromint Eagle is the use of
TI/Luminary LM3S processors. They do not currently have a low cost 512KB
flash option. Yet that has not been a significant limitation for
customer applications. A large majority of standalone 32-bit embedded
applications that we have seen work well within 256 KB flash. In fact,
most 'C' applications can even add an RTOS and still have flash left.

We do have an AVR32-based controller in the works that will have the
option of 512 KB of flash, mainly because that option is available in
that MCU.

For applications with larger memory footprints we also offer an ARM9
controller with 64 MB of RAM and 512MB or 1 GB of NAND flash. It targets
applications using Linux but could be used for standalone applications
too. A new 400 MHz model of the Electrum line in the picoITX form factor
will be available for under $100 in about four weeks. I have not built
eLua for the ARM9 but will do at some point.

Regards,
Jesus Alvarez

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev

mind. Although you can certainly run eLua as an academic or benchmarking

 


_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev



_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev
BogdanM BogdanM
Reply | Threaded
Open this post in threaded view
|

Re: New Board with eLua Support - Micromint Eagle 50

In reply to this post by jbsnyder

I think I can even shave some code off of the RPC code if I go through and think about cleaning up the way it's set up with exceptions.  I have at least a few more critical todos on the list for that code, like at least making it so that it isn't necessary to open a serial link and do: lua\r rpc.server()\r to start it up. :-)

I think we can define a new startup mode for this. Check the eLua boot process here:

http://elua.berlios.de/beta/en/arch_overview.html#boot

The RPC mode is very useful, so I'd like to add a special compilation flag for the "boot eLua directly into RPC mode scenario". Sure, you could have a /rom/autorun.lua with only "rpc.server()" inside, but this implies that you'd need the ROMFS in the image, which is an unnecessary dependency.
 
I'd assume you'd need some sort of MMU to make this work correctly, but I was thinking of something along the lines of a mechanism that would allow in-place usage, no LZ stream type stuff with a buffer. I'm thinking something like RLE &/or additional pre-computed de-duplication with a static memory map.  Dictionary size might become a problem, but I'd assume there's a balance somewhere (and someone's probably done this before).  With this, you would have previously checked if there's duplicated code and the lookup would then just point to to the common definition of that.  This said, I assume you need hardware to make these sorts of acrobatics reasonable.

I won't pretend that I fully understood what you said here :) Are we still talking about compressing the eLua image itself? If so, my original point still stands: you still need to decompress it somewhere, so having it compressed and then decompressed will actually make the problem worse. If you're thinking about "on-demand decompression", then yes, you'd need a MMU, and you won't find that in the targets currently supported by eLua.

Also, it might be that a stream algorithm like ones derived from Lempel-Ziv could be useful for Lua bytecode or scripts if memory usage could be kept to a minimum.  It would be pretty easy to hook the chunk loading code to apply something like this when something is on its way in or out of the VM.  I think the benefits there might be worth it if, say, LZ77/LZ78 works with a rather tiny buffer size (256 bytes or 512 bytes?).  Either that, or perhaps huffman coding if the entropy in code or bytecode is significantly less than 8 real bits of data per byte.

This, on the other hand, can make sense. Having something like a compressed ROM file system filled with Lua scripts might save up some space.
 
Best,
Bogdan



_______________________________________________
Elua-dev mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/elua-dev