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.
Posts in the Embedded Software category:
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. […]
Risks Are Often Underestimated — It Is Not Only the Chip Crisis that Threatens Embedded Manufacturers
With the chip crisis and the standstill of assembly lines in the automotive industry, supplier management has become a hot topic. Beyond the repeated shortage of semiconductors, there are other risks worth taking into consideration when selecting suppliers. The quality of a supplier for embedded hardware and software can determine the success or failure of […]
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 […]
Extending AppWizard-generated GUIs with emWin Widgets
AppWizard is a great tool for designing GUIs with our emWin embedded graphics library. Features like the intuitive editor, the integrated resource management, and the ability to add behavior to the screen objects by adding interactions make it easy to get started with emWin. But you can create even more advanced graphics solutions by extending […]
How to do Gauges in AppWizard – Part II
Recently, we at SEGGER released AppWizard, our new GUI design tool for our emWin embedded graphics library. It is now available as part of the emWin PRO package (v6.10 and later). In Part I of this blog article, I showed how to create a very common type of gauge – a circular gauge – by […]