Skip to content


Coming soon ....

After diving into a myriad of details about EM•Mark in our recent blog posts [ 006 - 011 ] , let's lighten the load a bit and quickly highlight some ongoing development efforts – which we'll discuss in upcoming blog posts over the next few months.  So back to work we go !!  😉

EM•Mark energy efficiency – TI CC2340R5

Our final set of EM•Mark results turns CoreMark inside out:  rather than running N  iterations of the benchmark in a finite loop, we'll continuously run a single benchmark cycle before entering "deep-sleep" – helping us measure MCU energy efficiency in a more realistic setting.

EM•Mark active power – TI CC2340R5

Having shown how small(er) EM programs can in fact execute fast(er) – especially when fetching instructions from zero wait-state SRAM – EM•Mark now reveals the (even greater) impact of program size on the power consumption of resource-constrained MCUs.

EM•Mark execution time – TI CC2340R5

While we normally must choose between optimize-for-size and optimize-for-speed options when compiling application programs, our second set of EM•Mark results will confirm that small(er) programs can  execute fast(er) – a key premise of the EM language and runtime.

EM•Mark program size – TI CC2340R5

With its tiny code → tiny chips  mantra capturing the essence of the EM programming language, it should come as no surprise that our first set of EM•Mark results will focus on program size – comparing legacy CoreMark (written in C) with its EM language counterpart.

Time for your feedback

We've now added the ability for readers to leave comments at the end of each Blogging EM post – anything from a quick 👍 reaction to a short question about the content to a free-form discussion on any interesting topics raised by the blog post.  Let's hear from you !!!

CoreMark reimagined – the EM•Mark suite

Virtually all MCU vendors run CoreMark® – the premier industry benchmark for meas­uring CPU performance within embedded systems.  But to best capture the additional memory and power con­straints of typical EM applications, we've transformed CoreMark into EM•Mark .

EM . optimize = WPO + ACO

EM relies upon two complementary optimization techniques – whole-program  [ WPO ] and application-centric  [ ACO ] – which work in tandem inside the EM language translator, yielding more efficient executable images than equivalent programs written directly in C/C++.

Learning EM through VS Code

Popular IDEs such as Eclipse and VS Code have elevated  "support for language X "  to one of their most vital features. To that end, our recently published EM Builder extension – freely available from the VS Code marketplace – now brings the EM language into the fold.

Benchmark[et]ing ultra-low-power with EM

Vendor data sheets might specify that an ultra-low-power MCU draws (say) 700 nA @ 3 V when in its "deep-sleep" mode.  Very nice – but until we factor in our application workload, we have no way to truly assess the impact of these MCU specs on overall energy efficiency.