29.01.2015 Views

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

Embedded Software for SoC - Grupo de Mecatrônica EESC/USP

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

186 Chapter 14<br />

evaluation of HW architecture candidates. Thus, in this case, automatic HAL<br />

<strong>de</strong>sign is nee<strong>de</strong>d to reduce the HAL <strong>de</strong>sign ef<strong>for</strong>ts. In terms of automatic<br />

<strong>de</strong>sign of <strong>de</strong>vice drivers, there have been presented some work [6]. However,<br />

general solutions to automatically generate the entire HAL need to be<br />

<strong>de</strong>veloped. The general solutions need also to support both application-specific<br />

and automatic <strong>de</strong>sign of HAL.<br />

6. CONCLUSION<br />

In this paper, we presented HAL <strong>de</strong>finition, examples of HAL function, the<br />

role of HAL in <strong>SoC</strong> <strong>de</strong>sign, and related issues. HAL gives an abstraction of<br />

HW architecture to upper layer SW. In <strong>SoC</strong> <strong>de</strong>sign, the usage of HAL enables<br />

SW reuse and concurrent HW and SW <strong>de</strong>sign. The SW co<strong>de</strong> <strong>de</strong>signed using<br />

a HAL API can be reused, without co<strong>de</strong> change, on different HW architectures<br />

that support the same HAL API. The HAL API works also as a contract<br />

between SW and HW <strong>de</strong>signers to enable them to work concurrently without<br />

bothering themselves with the implementation <strong>de</strong>tails of the other parts (HW<br />

or SW).<br />

As in the case of HW interface standards, the HAL API needs also a<br />

standard. However, contrary to the case of HW interface standards, the<br />

standard of HAL API needs to support new HW architectures in applicationspecific<br />

<strong>SoC</strong> <strong>de</strong>sign as well as the common functionality of HAL. Thus, the<br />

standard needs to have a common HAL API(s) and a gui<strong>de</strong>line to expand the<br />

generic one to support new HW architectures. To facilitate the early validation<br />

of reused SW, we need also the simulation mo<strong>de</strong>l of HAL. To reduce the<br />

overhead of implementing HAL (i.e. <strong>de</strong>sign cycle) and that of HAL implementation<br />

itself (i.e. co<strong>de</strong> size, execution time overhead), we need methods<br />

of automatic and application-specific HAL <strong>de</strong>sign.<br />

REFERENCES<br />

1.<br />

2.<br />

3.<br />

4.<br />

5.<br />

6.<br />

7.<br />

Virtual Socket Interface Alliance, http://www.vsi.org/<br />

Open Core Protocol, http:// http://www.ocpip.org/home<br />

Windows CE, http://www.microsoft.com/windows/embed<strong>de</strong>d/<br />

D. Probert, et al. “SPACE: A New Approach to Operating System Abstraction.” Proceedings<br />

of International Workshop on Object Orientation in Operating Systems, pp. 133–137, October<br />

1991.<br />

S. M. Tan, D. K. Raila, and R. H. Campbell. “An Object-Oriented Nano-Kernel <strong>for</strong> Operating<br />

System Hardware Support.” In Fourth International Workshop on Object-Orientation in<br />

Operating Systems, Lund, Swe<strong>de</strong>n, August 1995.<br />

S. Wang, S. Malik, and R. A. Bergamaschi, “Mo<strong>de</strong>ling and Integration of Peripheral Devices<br />

in <strong>Embed<strong>de</strong>d</strong> Systems.” Proceedings of DATE (Design, Automation, and Test in Europe),<br />

March 2003.<br />

S. Yoo, A. Bouchhima, I. Bacivarov, and A. A. Jerraya. “Building Fast and Accurate SW<br />

Simulation Mo<strong>de</strong>ls based on <strong>SoC</strong> Hardware Abstraction Layer and Simulation Environment<br />

Abstraction Layer.” Proceedings of DATE, March 2003.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!