EM has finally arrived – now what ???
While the effort spent to design and develop EM has literally spanned decades, the real journey has only just begun: promoting, sustaining, and evolving an open-source implementation of the language and its runtime for use by the broader embedded systems community.
Slowly opening the doors
You have no idea how much "stuff" has accumulated in the EM software { basement | attic | garage } since the language's initial debut back in 2010:
distros for almost two dozen MCUs, ranging from the 8-bit AVR ATmega168 used in early Arduino boards [2010] to several open-source RISC-V RV32ICM designs targeting FPGA hardware [2023]
a highly-configurable multi-tasking kernel implementing a wide range of scheduling policies – priortized preemption, blocking semaphores, run-to-completion, and so forth
mini device-drivers for every imaginable sort of I2C-based sensor ( temperature, vibration, motion, light, etc ), plus a FLASH file-system optimized for real-time data-logging
wireless communication stacks targeting 2.4 GHz and 868 MHz / 915 MHz radios using customized as well as standardized (BLE, Wifi) protocols, with support for over-the-air firmware update
and that's just the tip of the iceberg !!!
If not already obvious, we don't want to simply leave this "stuff" by the street with a sign advertising free software. Rather, we wish to open the door to EM rather gently – allowing the community to digest this (novel) language and runtime at a more measured pace.
To that end, we'll continually apply the "less is more" principle within the current EM-SDK release train.(1) Supporting just one MCU (for now !!)(2), we've also elected to limit the content bundled with these initial releases to only the most rudimentary EM runtime elements.
-
24.0.x
[ beta ] available now24.1.0
[ stable ] available Jan-24
These constraints, in fact, have enabled to us to better focus on EM itself – introducing the language and its runtime with a 10,000' technical overview followed by live, on-the-ground tours of curated programming examples.
Though rudimentary in design, these examples already hint at EM's uncanny ability to reduce program size when benchmarked against C/C++ . The SDK also contains state and energy traces for these examples – captured in real-time using popular logic and power analyzers.
And while we've (obviously) grown fond of EM and would surely attest to its positive impact on software productivity, EM's promise of higher-level programming and higher-levels of performance ultimately comes down to simple software metrics – size, speed, and energy.
Stay engaged at blog.openen.org : Upcoming posts will have more to say about the EM language in general, while soliciting your input on "now what" for the EM-SDK .
What can you do to help
read a little more about EM, including its origin story found here
create a personal account at GitHub, if you don't already have one
ask a question, voice a concern, or share a thought in our discussion forum
Happy coding !!!