Test Case Structure

A test case is written to facilitate verification and understanding of your software. Accordingly, a test case must be easy to understand, simple and not adding any complexity to your system. A typical test case shall consist of the following steps:

Capture.PNG

Example: Continue reading

Tips on Fixed-Point Arithmetic

Fixed point arithmetic is the efficient way to represent decimal numbers in embedded processors or DSPs. This efficiency comes in terms of many factors including

  1. Speed: fixed point arithmetic is orders of magnitude faster than floating point arithmetic, even if you have FPU on your processor.
  2. Price: low or medium price processors normally don’t come with FPU, you need to use libraries to perform floating point arithmetic.

This short article will not focus on all aspects of fixed point arithmetic, you can refer to the references for more details but it will mention some tips to be noticed when using fixed point arithmetic.

Continue reading

The Art of Readable Code

Introduction

In today’s embedded software industry, the real challenge is not in writing a complex piece of code to be used once. The real challenge is how to produce a reusable code that can fit as many projects as possible. To achieve this standardization and reusability target there are two main factors that the software designer shall be aware of:

  1. Using a proper software architecture and
  2. Writing a clear readable code.

This article will focus on the second factor, although the first factor is just as important.
“Writing a clear readable code “, what does that mean? How to evaluate abstract concepts as “clear” and “readable”?!

Continue reading

Do We Really Need Software Architecture ?

Introduction

This article will focus on one aspect of the development process which is the used software architecture to build the design. The term software architecture is very similar to the architecture of a building, where we are going to define the basic components of the software, how they are organized and how these components interact. There are numerous known software architectures e.g. layered, pipe-and-filter, Model–view–controller,

Continue reading

Data Converters in Embedded System

Introduction

A basic embedded system shall be designed to acquire data from the external environment, and then perform some computations to determine the correct state of the outputs, and finally, generate the physical outputs. The input/output signals can be digital signals, analog signals or communication lines.  The target of this article is to understand how data converters work in an embedded system, how to choose suitable devices for your application and how to configure these devices properly.

Continue reading