HAIL: a language for easy and correct device access

  • Authors:
  • Jun Sun;Wanghong Yuan;Mahesh Kallahalla;Nayeem Islam

  • Affiliations:
  • DoCoMo Communication Laboratories USA, Inc., San Jose, CA;DoCoMo Communication Laboratories USA, Inc., San Jose, CA;DoCoMo Communication Laboratories USA, Inc., San Jose, CA;DoCoMo Communication Laboratories USA, Inc., San Jose, CA

  • Venue:
  • Proceedings of the 5th ACM international conference on Embedded software
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is difficult to write device drivers. One factor is that writing low-level code for accessing devices and manipulating their registers is tedious and error-prone. For many system-on-chip based systems, buggy hardware, imprecise documentation, and code reuse worsen the situation further. This paper presents HAIL (Hardware Access Interface Language), a language-based approach to simplify device access programming and generate error checking code against bugs in software, hardware, and documentation. HAIL is a domain-specific language that specifies all aspects of a device's programming interface and the access methods in a particular system and OS. A compiler automatically checks the specification and translates it into C code for device access, with optional debugging code. The generated code can be included directly into device driver code. In the paper, we argue that HAIL lowers development effort, incurs minimal runtime overhead, and reduces device access related bugs. We also show that the HAIL specification can be reused for different operating systems, thereby reducing porting costs.