Segger, just two weeks ago, announced it had licensed emRun++ to SiFive, the leader and founders of the RISC-V computing platform.
emRun++ is a complete C++ standard library specifically designed and optimized for GCC/LLVM-based toolchains as well as embedded systems. The system is based on SEGGER’s efficient emRun and emFloat runtime and floating-point libraries.
“After licensing and integrating SEGGER’s emRun C runtime library for RISC-V into our Freedom Studio IDE and Freedom Tools in 2021 and experiencing its superior code size and performance compared to existing open-source alternatives, the next step was to consider C++ support. It was an easy decision to upgrade to emRun++ once it became available for licensing,” said Sam Grove, director of Product Management – Software at SiFive. “As a modern programming language, C++ has become increasingly important in the embedded sector, offering developers more and more options. It is essential for SiFive to be able to offer a state-of-the-art C++ library to our customers. emRun++ is perfectly suited for this purpose.”
emRun++ guarantees low instruction counts with fast heap operations, enabling hard real-time applications to be written in C++. To support the often seen embedded use cases even when resources are constrained in the targets. The C++ library is available in a “no throw” configuration, avoiding overhead associated with exceptions.
Designed for embedded systems, emRun++ offers interrupt-safe memory management. This allows the use of C++ in Interrupt Service Routines
“SEGGER’s emRun++ is a proven part of our multi-platform Embedded Studio IDE. The memory footprint and the performance are simply amazing,” says Rolf Segger, founder of SEGGER. “SiFive customers have already been enjoying the benefits of the SEGGER emRun C library, and soon, C++ developers using SiFive tools will also benefit from emRun++.”
emRun++ includes a complete C++ 17 Standard Library with standard algorithms such as sorting, searching, and transformations, and generic container templates that include sets, vectors, lists, queues, stacks and maps, function objects, iterators, localization, strings, and streams. There are utility functions for everyday use cases.
For more information on emRum++ visit the information page here.
SEGGER | segger.com
SiFive Inc. | sifive.comSponsor this Article
For the past 8 years, I have been writing about embedded technologies, added to my technical, academic, and medical editorial experience, with companies like Elsevier and Cambridge University Press. I tell people to read what I write, not try to pronounce my last name. I am always available for comments and suggestions you can reach me at firstname.lastname@example.org and I promise I will take the time to reach back out to you. I live in the North East with my wonderful family.