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?
Posts in the Embedded Software category:
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 […]
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 […]
Securing embedded systems with digital signatures: The basics
Securing an embedded system is incredibly important, and having a digital signature plays a crucial role in that. A digital signature confirms that a specific piece of information came from a specific organization (i.e. the one with the private key as described below) and has not been modified. Follow-up articles will firstly cover related issues […]
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.
Algorithms for division – part 4 – Using Newton’s method
In the previous article I presented an algorithm for division by calculating a reciprocal. This article presents a way to calculate the reciprocal, rather than looking it up, trading size of lookup table against speed of calculation.
Algorithms for division – part 3 – Using multiplication
We’ve explored simple algorithms that develop a quotient one digit at a time: reliable, understandable, but ultimately quite slow. Now it’s time to change up a couple of gears and turbocharge division for speed!
Algorithms for division – part 2 – Classics
This article will explore the classic division algorithms and how they can be implemented efficiently, in terms of code space and execution time, by exploiting machine features. Don’t expect anything astounding here, the algorithms are classic for a reason: this path is well-trodden.
Algorithms for division – part 1
This is the first in a series of articles that attempt to dispel the mystique around division algorithms. We do this by presenting coded algorithms that correctly divide, and describe how variations of these algorithms are used in emRun and emFloat, our C runtime and floating-point libraries.
emWeb: User interface in the web browser
Recently at SEGGER, we released a brand-new product: the Flasher Hub. During development, it became clear that the Flasher Hub needed an easy user interface for monitoring and configuration. The device itself is headless: No display and limited resources. Years of experience with web interfaces used in our J-Links and Flashers made our decision easy. […]