We have been using automated tests on hardware in the Flasher and J-Link departments for some time. But now with the new J-Link PRO PoE, we felt it was time to get some of the evaluation boards out of the cabinets and build a proper test farm. We are selecting the most popular boards so […]
Author: Rolf Segger
CPU Design at SEGGER
CPU design is not normally what we do. But: We actually have 2 CPU designed and in use, an 8-bit and a 32-bit CPU. In this article we look at our 32-bit CPU, or rather how we are creating an enhanced version of it with very high Code Density
Size matters – Comparing tool chains and CPUs
Many people think that in today’s world, the size of a program does not matter. In many cases, that is not true, especially in the world of embedded computing systems. I explain why and introduce a benchmark that makes it possible to easily compare the code-size efficiency of different tool chains (Compiler, assembler, linker, run […]
C++ pitfalls – Memory allocation from interrupts
Modern C++ programming very much abstracts what is happening “under the hood” – i.e. what code the CPU is actually executing. This is nice for the programmer … if it works well. Unfortunately, C++ also introduces a stability problem in embedded systems. Many programmers are unaware of this problem. This post gives some background, explains […]
Hacking emSecure?
On October 24th of 2021, we were contacted by the Moscow based security company BI.ZONE Research Lab. BI.ZONE is a security research firm, checking software and computer systems for vulnerabilities. They were trying to find weaknesses in J-Link.
Every byte counts – Floating-point in less than 1 KB
How expensive in terms of code size are floating-point operations if the CPU does not have an floating-point unit (FPU)? In this article, I will investigate, based on Embedded Studio for ARM and a generic Cortex-M3 device, how big (or small) an entire application using basic float operations, add, sub, mul, and div, can be. […]
Every byte counts – Smallest “Hello world”
When searching on-line for small C-programs, there seems to be a lot of confusion about what is doable and what is not. There are a lot of posts wondering why even for minimal programs such as “Hello world” applications are so big, but not many explanations or fixes. I will show how to make a […]
Every Byte counts – The 100-Byte Blinky Challenge
I decided to put Embedded Studio to the test: How little flash memory could be used on a typical Cortex-M Microcontroller to toggle an LED?
Profiling and Code coverage on RISC-V using simulation
We recently licensed our Floating point library for RISC-V to a large international corporation. They asked not only for our functional verification suite, but also for a verification of the verification suite. A code coverage report showing that the entire code had been executed. While we know that all lines and every instruction have been […]
SEGGER in times of the coronavirus / COVID-19
The idea of this blog is to give readers a glimpse of the plans and inner workings at SEGGER, what we’re working on, what we’re thinking, what’s going on, and what’s cooking. These days, unfortunately, that includes dealing with the coronavirus. I think everybody by now understands that this virus is not just a regular […]