Guidelines for Developing a Nios II HAL Device Driver

ID 683146
Date 6/12/2015
Public
Document Table of Contents

1.1.1. Using the HAL Architecture and Services

The HAL application programming interface (API) provides an interface to hardware similar to a portable operating system interface for unix (POSIX). This interface abstracts the hardware details from upper-level clients of the HAL, such as operating systems, networking stacks, or Nios II applications. The HAL provides a variety of generic device classes, including character-mode, file subsystem, Ethernet, timestamp and system timers, direct memory access (DMA), and flash memory. The Altera_Avalon_UART is a member of the character-mode class of HAL devices. The HAL has an API for character-mode class devices, which you can use to manipulate the Altera_Avalon_UART. Mutual exclusion resources are available, provided either by MicroC/OS-II (if present) or by the HAL. These services include semaphores and event flags. When the HAL device driver makes calls to these resources, the calls are simply translated to non-operations when the multi-threading services are not available.

For additional information about HAL services, refer to the "Developing Programs Using the Hardware Abstraction Layer" chapter in the Nios II Software Developer's Handbook.

For additional information about the HAL API, refer to the "HAL API Reference" chapter in the Nios II Software Developer's Handbook.