| Embedded IDE Link™ MU | ![]() |
Blackfin DSP Support in Embedded IDE Link MU
Create interrupt service routines (ISR) in the software generated by the build process. When you incorporate this block in your model, code generation results in ISRs on the processor that run the processes that are downstream from this block or an Idle Task block connected to this block. Core interrupts trigger the ISRs. System interrupts trigger the core interrupts. In the following figure, you see the mapping possibilities between system interrupts and core interrupts.
Blackfin processors support the interrupt numbers shown in the following table. Some Blackfin processors do not support all of the system interrupts.
| Interrupt Description | Valid Range in Parameter |
|---|---|
| Core interrupt numbers | 7 to 15 |
| System interrupt numbers | 0 to 31 (The upper end value depends on the processor. May be less than 31.) |

Specify a vector of one or more interrupt numbers for the interrupt service routines (ISR) to install. The valid range is 7 to 15, where 7 through 13 are hardware driven, and 14 and 15 are software driven. Core interrupts numbered 0 to 6 are reserved and cannot be entered in this field.
The width of the block output signal corresponds to the number of interrupt values you specify in this field. Triggering of each ISR depends on the core interrupt value, the system interrupt value, and the preemption flag you enter for each interrupt. These three values define how the code and processor respond to interrupts during asynchronous scheduler operations.
System interrupt numbers identify system interrupts to map to core interrupts. Enter one or more values as a vector. The valid range is 0 through 31, although the valid range depends on your processor. Some processors do not support the full range of 32 system interrupts. The software does not test for valid system interrupt values. You must verify that your values are valid for your processor. You must specify at least one system interrupt number to use asynchronous scheduling.
The block maps the first interrupt value in this field to the first core interrupt value you enter in Core interrupt numbers, it maps the second system interrupt value to the second core interrupt value, and so on until it has mapped all of the system interrupt values to core interrupt values. You cannot map more than one system interrupt to the same core interrupt. Therefore, you can enter one system interrupt value in this field and map it to more than one core interrupt. You cannot enter more than one value in this field and map the values to one core interrupt.
When you trigger one of the system interrupts in this field, the block triggers the ISR associated with the core interrupt that is mapped to the system interrupt.
Each output of the Hardware Interrupt block drives a downstream block (for example, a function call subsystem). Simulink® task priority specifies the Simulink priority of the downstream blocks. Specify an array of priorities corresponding to the interrupt numbers entered in Interrupt numbers.
Proper code generation requires rate transition code (see Rate Transitions and Asynchronous Blocks). The task priority values ensure absolute time integrity when the asynchronous task must obtain real time from its base rate or its caller. Typically, assign priorities for these asynchronous tasks that are higher than the priorities assigned to periodic tasks.
Higher priority interrupts can preempt interrupts that have lower priority. To control this preemption, use the preemption flags to specify whether an interrupt can be preempted.
Entering 1 indicates the corresponding core interrupt can be preempted.
Entering 0 indicates the corresponding interrupt cannot be preempted.
When Core interrupt numbers contains more than one interrupt priority, you can assign different preemption flags to each interrupt by entering a vector of preemption flag values that correspond to the order of the interrupts in Core interrupt numbers. If Core interrupt numbers contains more than one interrupt, and you enter only one flag value in this field, that status applies to all interrupts.
For example, the default settings [0 1]indicate that the interrupt with value 10 in Core interrupt numbers is not preemptible and the value 12 interrupt can be preempted.
When you select this option, Simulink adds an input port to the Hardware Interrupt block. This port receives input only during simulation. Connect one or more simulated interrupt sources to the simulation input.
![]() | Blocks — Alphabetical List | HW/SW Interrupt | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |