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.

Chapter 6<br />

MODELING AND INTEGRATION OF<br />

PERIPHERAL DEVICES IN EMBEDDED<br />

SYSTEMS<br />

Shaojie Wang 1 , Sharad Malik 1 and Reinaldo A. Bergamaschi 2<br />

1 Department of Electrical Engineering, Princeton University, NJ, USA; 2 IBM T. J. Watson<br />

Research Center, NY, USA<br />

Abstract. This paper <strong>de</strong>scribes automation methods <strong>for</strong> <strong>de</strong>vice driver <strong>de</strong>velopment in IP-based<br />

embed<strong>de</strong>d systems in or<strong>de</strong>r to achieve high reliability‚ productivity‚ reusability and fast time to<br />

market. We <strong>for</strong>mally specify <strong>de</strong>vice behaviors using event driven finite state machines‚ communication<br />

channels‚ <strong>de</strong>claratively <strong>de</strong>scribed rules‚ constraints and synthesis patterns. A driver<br />

is synthesized from this specification <strong>for</strong> a virtual environment that is plat<strong>for</strong>m (processor‚<br />

operating system and other hardware) in<strong>de</strong>pen<strong>de</strong>nt. The virtual environment is mapped to a<br />

specific plat<strong>for</strong>m to complete the driver implementation. The illustrative application of our<br />

approach <strong>for</strong> a USB <strong>de</strong>vice driver in Linux <strong>de</strong>monstrates improved productivity and reusability.<br />

Key words: embed<strong>de</strong>d software‚ embed<strong>de</strong>d software synthesis‚ peripheral mo<strong>de</strong>ling<br />

1. INTRODUCTION<br />

Device drivers provi<strong>de</strong> a bridge between a peripheral <strong>de</strong>vice and the upper<br />

layers of the operating system and the application software. They are critical<br />

software elements that significantly affect <strong>de</strong>sign quality and productivity.<br />

Given the typical lifecycle of chipsets being only 12 to 24 months‚ system<br />

<strong>de</strong>signers have to re<strong>de</strong>sign the hardware and software regularly to keep up<br />

with the pace of new product releases. This requires constant updates of the<br />

<strong>de</strong>vice drivers. Design and verification of <strong>de</strong>vice drivers is very complicated<br />

due to necessity of thorough knowledge about chips and boards‚ processors‚<br />

peripherals‚ operating systems‚ compilers‚ logic and timing requirements; each<br />

of which is consi<strong>de</strong>red to be tedious. For example‚ Motorola MPC860<br />

PowerQUICC is an <strong>SoC</strong> micro-controller used in communications and networking<br />

applications. Its board support package (BSP) (essentially drivers)<br />

has 25000 lines of C co<strong>de</strong> [6] – an indication of its complexity. With timeto-market<br />

requirements being pushed below one year‚ driver <strong>de</strong>velopment is<br />

quickly becoming a bottleneck in IP-based embed<strong>de</strong>d system <strong>de</strong>sign.<br />

Automation methods‚ software reusability and other approaches are badly<br />

nee<strong>de</strong>d to improve productivity and are the subject of this paper.<br />

The <strong>de</strong>sign and implementation of reliable <strong>de</strong>vice drivers is notoriously<br />

A Jerraya et al. (eds.)‚ <strong>Embed<strong>de</strong>d</strong> <strong>Software</strong> <strong>for</strong> SOC‚ 69–82‚ 2003.<br />

© 2003 Kluwer Aca<strong>de</strong>mic Publishers. Printed in the Netherlands.<br />

69

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

Saved successfully!

Ooh no, something went wrong!