Embedded Software Design Tool Flow
Writing software for the Nios II processor is similar to any other microprocessor family. The easiest way to start designing effectively is using a Nios II development kit from Altera. These kits include documentation, a ready-made development board, and all the tools necessary to write Nios II programs right out of the box.
The Nios II software development environment provided by Altera consists of the following tools:
- Nios II IDE–The Nios II integrated development environment (IDE) is the software development graphical user interface (GUI) for the Nios II processor. All software development tasks can be accomplished within the Nios II IDE, including editing, building, and debugging programs. The Nios II IDE is the window through which all other tools can be launched.
- GNU Tool Chain–The Nios II compiler tool chain is based on the standard GNU C compiler (GCC) compiler, assembler, linker, and makefile facilities.
- Hardware Abstraction Layer (HAL) System Library–The HAL provides a hosted C run-time environment based on the American National Standards Institute (ANSI) C standard libraries (e.g., stdio.h, math.h). The HAL provides generic I/O devices, allowing users to write programs that access hardware using the C standard library routines (e.g., printf()).
- Real Time Operating System (RTOS)–Altera provides the MicroC/OS-II RTOS with the Nios II development kits. MicroC/OS-II is built on the thread-safe HAL system library, and implements a simple, well-documented RTOS scheduler.
- TCP/IP Stack–Altera provides the lightweight IP TCP/IP stack with the Nios II development kits. The TCP/IP stack is built on MicroC/OS-II, and implements the standard UNIX sockets application program interface (API).
- Instruction Set Simulator (ISS)–The Nios II ISS allows users to begin developing programs before the target hardware platform is ready. The Nios II IDE allows users to run programs on the ISS as easily as on a real hardware target.
- Example Designs–Documented software examples demonstrate all prominent features of the Nios II processor and the development environment.
Figure 1 shows the embedded software design flow for the Nios II development environment. The Nios II IDE provides an environment for code creation, along with optional RTOS and TCP/IP library integration. The Nios II IDE also provides a tool for build management, using the GNU compiler as its underlying technology. Running and debugging embedded programs are tasks performed within the Nios II IDE as well. Designers can target an FPGA development board or the ISS included with the Nios II development kits. Additionally, the Nios II IDE features a flash programmer that can be used to manage the flash contents of a processor system.
Figure 1. Embedded Software Design Flow for the Nios II Processors

|
 |
|