SMCS: an efficient compression algorithm for microcontrollers

One of the things that is driven from the top in SEGGER is that we can always do better. Not satisfied with standard schemes, we wanted to optimize emCompress, SEGGER’s compression library, for:

  • Very fast decompression
  • High compression ratio (uncompressed size divided by compressed size)
  • Small decompressor
  • Limited state in RAM when decompressing

embOS/IP with built-in UDP flood protection

embOS/IP comes with many features already built-in. One of these features is a UDP flood protection that can help you to save execution time on incoming data that would be discarded anyhow. Whether you are really subject to an attack or you are simply part of a really crowded network, this optimization can free up […]

Killer features of the SEGGER linker, or what’s wrong with the GNU linker?

In the previous post, Rolf described some of the progress that we have made on the brand-new SEGGER linker. In this post I examine the gnarly problems with the GNU linker and how they are easily solved by the SEGGER linker. A follow-up post will examine more of the linker’s capabilities.

The SEGGER Linker – Replacing the GNU linker

At SEGGER, we pretty much use our own tools and products to develop our products. That includes using our middleware, such as embOS, embOS/IP, emUSB, emFile, web and FTP Servers and so on, as part of the firmware of our J-Link, J-Trace and Flasher products.  And the other way round, utilizing the same hardware products, most […]

Using a watchdog in a multi-task (RTOS) environment

Clementine, a NASA satellite to test sensors and spacecraft components under extended exposure to the space environment, was launched on 25 January 1994. For the lack of a few lines of watchdog code, her mission was lost on 7 May 1994. Clementine had performed lunar mapping for approximately two consecutive months when she left lunar […]

Performance tuning our software

As you may have noticed, SEGGER have introduced a cryptographic algorithm library, emCrypt. We released this product as existing and new customers wanted to use the “hidden” cryptographic capabilities of emSSL but didn’t need to run SSL/TLS as a protocol. Well, that is not entirely true, some customers already had licenses for emSSL but also […]

Getting printf Output from Target to Debugger

  Erich Styger recently posted a great tutorial on how to add console functionality using Single Wire Output (SWO) on ARM Cortex-M targets. This inspired me to write a more general post on debug output (“printf”) implementations on embedded target, including SWO and RTT. Debug Output from a Target There are different methods to get debug output from the […]

Update on: Comparing Performance on Windows, Linux and OS X

If you haven’t read the original post, have a look at it: Comparing Performance on Windows, Linux and OS X I got my computer upgraded 🙂 It is very tiny, an Intel NUC Kit. But what matters is what is inside: An Intel i7 with 4 cores and hyper-threading, so like 8 processors, 16 GB […]