Specifications
For more information about creating a new project with the Nios II SBT, refer to the Getting Started from
the Command Line chapter of the Nios II Software Developer’s Handbook.
Related Information
• Getting Started with the Graphical User Interface on page 2-1
For more information about an exercise in creating a simple Nios II HAL software project; and for
more information about creating a new project with the Nios II SBT.
• Getting Started from the Command Line on page 3-1
For more information about creating a new project with the Nios II SBT.
HAL Architecture for Embedded Software Systems
Services
The HAL provides the following services:
• Integration with the newlib ANSI C standard library—Provides the familiar C standard library
functions
• Device drivers—Provides access to each device in the system
• The HAL API—Provides a consistent, standard interface to HAL services, such as device access,
interrupt handling, and alarm facilities
• System initialization—Performs initialization tasks for the processor and the runtime environment
before main()
• Device initialization—Instantiates and initializes each device in the system before main() runs
Layers of a HAL-Based System
The Layers of a HAL-Based System
User Program
C Standard Library
HAL API
Device
Driver
Device
Driver
...
Device
Driver
Nios II Processor System Hardware
Applications versus Drivers
Application developers are responsible for writing the system’s main() routine, among other routines.
Applications interact with system resources either through the C standard library, or through the HAL
API. Device driver developers are responsible for making device resources available to application
5-2
HAL Architecture for Embedded Software Systems
NII5V2
2015.05.14
Altera Corporation
Overview of the Hardware Abstraction Layer
Send Feedback