SEGGER’s emRun Runtime Library licensed by SiFive

1 min read

The SEGGER emRun runtime library has been licensed by SiFive and is now available as part of the recently announced SiFive 21G1 release.

SiFive has licensed emRun as part of its Freedom Tools and Freedom-E-SDK packages. This integration will enable chip designers to achieve improved levels of performance, while reducing code size by up to 25 %, supporting SiFive’s focus on toolchain and library support that looks to reduce code size and lower memory footprints.

The SEGGER emRun runtime library will enable SiFive customers to use the substantial new capabilities of the faster, more efficient and more capable SiFive Core IP portfolio.

emRun is a complete C runtime library for use with any toolchain. It is used in SEGGER's Embedded Studio IDE and has been designed and written from the ground up for embedded devices to deliver high performance with a small footprint.

Time-critical routines are written in assembly language and, in many cases, reduced code size makes it possible to use a smaller microcontroller with less on-chip memory. This can result in significant cost savings, especially for devices built in large quantities for the mass market. In some cases, this code-size saving may make the difference between being able to fit the microcontroller’s on-chip memory or not.

“The continued support from SEGGER is a great asset to the RISC-V ecosystem,” said Drew Barbier, Senior Director of Product Marketing, SiFive. “SEGGER has supported SiFive RISC-V Core IP since 2017 and the emRun library represents superb added value for embedded developers working with SiFive IP.”

A key component of emRun is emFloat, a highly optimised, IEEE 754 compliant floating-point library, designed from the ground up for embedded systems. Designed to be both fast and very small, it delivers FPU-like performance in pure software. Even where an FPU is available emFloat boosts the FPU’s performance for complex mathematical functions.

emFloat is configurable for small code size or increased execution speed or a combination, with calculated results identical in all modes.