beautypg.com

Interrupt pragma, Interrupt pragma –4, Interrupt pragma” on – Altera Nios II C2H Compiler User Manual

Page 122

background image

6–4

9.1

Altera Corporation

Nios II C2H Compiler User Guide

November 2009

Interrupt Pragma

Interrupt
Pragma

To use a hardware accelerator in interrupt mode, add the following line
to your function source code:

#pragma altera_accelerate \

enable_interrupt_for_function

At the next software compilation, the C2H Compiler creates a new header
file containing all the macros needed to use the accelerator and service the
interrupts it generates.

This pragma causes the function (which is assumed to be a top-level
accelerated function, not an accelerated subfunction) to be an interrupt-
mode accelerator. Specifically, the following things change:

The accelerator's control slave has an IRQ signal, which is asserted
every time the function has completed execution.

The polling loop in the generated driver file is removed. When the
function is called, the CPU immediately returns after launching the
accelerator.

A header file is generated, providing macros and definitions
required for you to write an ISR. The macros are summarized in

Table 6–1

.

An example of this header file is shown in

Example 6–4

for an

accelerated function called

coprocess()

in a Nios II IDE project

called my_project. The file is generated in /
, where is the software project
directory, and is the project configuration name
(Release or Debug). The file name is ACCELERATOR_Name>__IRQ.h, where is the name
of the project (usually the same as ), and Name> is the name of the function you are accelerating.

Table 6–1. C2H Accelerator Interrupt Macros

Purpose

Macro Name

Return value

ACCELERATOR

_

_

_

GET_RETURN_VALUE()

Interrupt clear

ACCELERATOR

_

_

_

CLEAR_IRQ()

Check status

ACCELERATOR

_

_

_

BUSY()