Discussion:
Can eiffel be used for bare metal development?
(too old to reply)
d***@gmail.com
2014-03-11 16:14:35 UTC
Permalink
I'm wondering can Eiffel programming language be really use for bare metal development (for developing code that runs without operating system, or for actually developing an operating system from ground up in Eiffel)? From the first sight it seems to be a hard task. Eiffel compiles to C, and then C can be compiled to bare bones code, but what about Eiffel's runtime? Is the runtime written in C or in Eiffel itself? Is there a subset of Eiffel that can compile and run without runtime at all? What parts of runtime will I need to reimplement and how much different parts of the runtime depend on each other? Is there any osdeving projects that use Eiffel or does anyone try to do osdeving with Eiffel?
Larry Rix
2015-01-05 00:04:16 UTC
Permalink
Post by d***@gmail.com
I'm wondering can Eiffel programming language be really use for bare metal development (for developing code that runs without operating system, or for actually developing an operating system from ground up in Eiffel)? From the first sight it seems to be a hard task. Eiffel compiles to C, and then C can be compiled to bare bones code, but what about Eiffel's runtime? Is the runtime written in C or in Eiffel itself? Is there a subset of Eiffel that can compile and run without runtime at all? What parts of runtime will I need to reimplement and how much different parts of the runtime depend on each other? Is there any osdeving projects that use Eiffel or does anyone try to do osdeving with Eiffel?
Apparently it can as Manu Stapf accomplished for HP so they could use Eiffel for printer drivers.
d***@gmail.com
2015-01-28 23:11:37 UTC
Permalink
Post by Larry Rix
Apparently it can as Manu Stapf accomplished for HP so they could use Eiffel for printer drivers.
This is very interesting. Could you post some links, or explain how this can be achived. Does it require hacking the compiler?
Larry Rix
2015-01-29 12:41:27 UTC
Permalink
Post by d***@gmail.com
Post by Larry Rix
Apparently it can as Manu Stapf accomplished for HP so they could use Eiffel for printer drivers.
This is very interesting. Could you post some links, or explain how this can be achived. Does it require hacking the compiler?
I don't have any other info, but you can ask Manu as he personally did or was closely associated with the work. His explanation of it to me was quite some time ago. All I remember is that it took some rewriting of the libraries and compiler output to match the target hardware. Beyond that, I have no specific knowledge.

Hope this helps somehow! :)
m***@eiffel.com
2015-02-19 17:26:23 UTC
Permalink
Post by d***@gmail.com
I'm wondering can Eiffel programming language be really use for bare metal development (for developing code that runs without operating system, or for actually developing an operating system from ground up in Eiffel)? From the first sight it seems to be a hard task. Eiffel compiles to C, and then C can be compiled to bare bones code, but what about Eiffel's runtime? Is the runtime written in C or in Eiffel itself? Is there a subset of Eiffel that can compile and run without runtime at all? What parts of runtime will I need to reimplement and how much different parts of the runtime depend on each other? Is there any osdeving projects that use Eiffel or does anyone try to do osdeving with Eiffel?
Currently we still rely on an OS and a C runtime library. Our runtime can be tuned to remove certain features such as object serialization, deep object equality, file manipulations, no GC, ...

Our past experience shows that we need about 256KB of ROM/RAM to run a version of Eiffel that is quite close to the desktop version. I think it is possible to go lower but this requires some more fine tuning.

Regards,
Manu
r***@googlemail.com
2015-03-26 14:23:52 UTC
Permalink
Have you considered SPARK 2014? It has contracts, freely available
tools and compilers, and was very much designed for bare-metal
embedded systems. Oh...and the contract verification can be static,
dynamic, or some mixture of both... See www.spark-2014.org
- Rod Chapman

Loading...