Sorry, your browser does not support JavaScript!

Hardware Abstraction Layer Design

Hardware application layer (HAL) is the initial step that is reusable and hardware dependent. The main role of Hardware application is to provide the application developer with a set of standard functions that could be used to access hardware functions without actually absorbing all the facts. It acts as medium between physical hardware and software.

Designing HAL is an important first step to developing firmware that is and hardware independent and reusable. The HAL, or Hardware Abstraction Layer, assist the application developer with a set of standard functions that can be used to access functionality of hardware with a detailed understanding of how the hardware works.


Embedded Software plays a significant role in heterogeneous Multi-processor System-on-Chip (MPSoC) architecture due to its high complexity. In order to reduce the fastidious design process, embedded software needs to be reused over several MPSoCs. Thus, software becomes a key challenge.

Here, a clear separation between the hardware dependent and independent software layers, Here a component based design flow, which allows the generation and validation of the different software layers to obtain the final software stack. Then, by changing the Hardware Abstraction Layer (HAL), one can use the software stack on on different MPSoC architectures. The HAL shows the lowest software layer which is totally dependent on target architecture. The HAL abstractions through the use of well defined HAL APIs, enables flexibility and makes software portability and enables .The HAL APIs allow initial software development before the availability of hardware architecture, but also architecture exploration. The proposed methodology is applied to design the software stack for the Motion multimedia application (JPEG) and to execute it on diverse processors by changing HAL and preserving the HAL APIs.

Advantages of  HAL : switching HW/OS

  • It reduces charges in picking up wrong tools. Gives options to develop and application code and component in a more convenient environment on a PC:
  • It allows easier unit and integration testing of components
  • It allows to build large scale simulation environments


Advantages of HAL: cross platform testing

We can reuse the software across platforms to enable communication between them. This is vital for both the testing and application development.


Utilities(data analysis, Visualization)


Utilities(data analysis,



Test care software



Under test






Embedded hardware —————————————————————-




Advantages of HAL:  Automated Unit Testing

We can employ the embedded software on a PC platform, emphasizing the concept of continuous integration with automated unit tests.