Imagine you’re just stepping into the world of embedded systems. Your possibilities as a developer are endless—from creating smart home devices to powering industrial automation. But with so many tools, technologies, and processes to learn, where do you even begin?
ChatGPT’s take on SEGGER J-Links: An insightful “conversation”
At SEGGER, we strive to deliver products that make developers go, “Wow!” SEGGER’s J-Link debug probes have an excellent reputation in the embedded industry – the real world full of real people. However, we were still curious to hear what the ever-growing artificial world had to say, so we asked ChatGPT about our market-leading devices. […]
J-Link PRO PoE powers the SEGGER test farm
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 […]
Debugging with external memory: J-Link adds Dual Memory Maps
J-Link debug probes do two important things: they download programs into RAM or flash memory, and they enable debugging in real time, with the setting of unlimited breakpoints, viewing of memory registers, and much more. Without this debugging ability, we are back to trial and error. When the debug process just stops, with no way […]
Automated testing made easy with emSim
Software testing, for embedded or for native solutions, can seem like a headache, but it doesn’t have to be! Of course, there are challenges. Time and resource limitations can restrict the level of testing, and it is difficult to simulate all real-world scenarios and corner cases. This can lead to defects being found in the […]
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
A whole new way to interact with headless devices
We are relying more and more on wearable and connected technology, but how do we configure them without a human interface? A great example are the wireless headsets we now all use for video conferencing (thank you, Covid). The initial set up of the minimal devices can be challenging, holding buttons in what can sometimes […]
RISC-V: Dividing efficiently across different hardware
In previous blog posts I have described the division algorithms SEGGER implemented in emRun. However, which algorithm is best (in terms of code size, execution speed, or power efficiency) is very dependent on the target instruction set architecture (ISA) and the way the ISA is implemented in silicon. This article explains how we help to […]
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 […]