INTRDx

INTRDx ( Interrupt Source Register .... Interrupt Device じゃないの???)は、優先順位xで発生している割り込み源の情報を与えるビットマップです。

レジスタの構造

図1にビット配置を示します。初期値は0です。ハーフトーンの領域は予約領域です。

図1 レジスタの構造

それぞれのビットはデバイスをあらわし、1ならば割り込み要求が起きていることを示します。INTRDxの"x"はIPRxで与えたデバイスの優先順位を表します。ADSP-2191では"x"に4を足した値がIMASKでの優先順位(ビット位置)となります。

API

C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hとdef2191.hで行われています。INTRDxにアクセスする前には必ずIOPGにInterrupt_Controller_Pageを設定してください。

// #include <sysreg.h>
// #include <def2191.h>

sysreg_write(sysreg_IOPG, Interrupt_Controller_Page)     // 割り込みページに設定
io_space_write(INTRD0, 値)         // INTRD0に値を設定
変数 = io_space_read(INTRD0)       // INTRD0の値を取得。INTRDxも同様

アナログデバイセズが配布しているmcmの中のビット定義ファイルdef2191bit.hから関連するビット定義部分をここに引用します。

// Definition of INTRDx
// Note : The bit name is not defined HR. I have defined from IPRx
#define MDMA_INT        BIT_14
#define FLAGB_INT       BIT_13
#define FLAGA_INT       BIT_12
#define TIMER2_INT      BIT_11
#define TIMER1_INT      BIT_10
#define TIMER0_INT      BIT_9
#define UARTX_INT       BIT_8
#define UARRX_INT       BIT_7
#define SP2TX_INT       BIT_6
#define SP2RX_INT       BIT_5
#define SP1TX_INT       BIT_4
#define SP1RX_INT       BIT_3
#define SP0TX_INT       BIT_2
#define SP0RX_INT       BIT_1
#define HOST_INT        BIT_0

参照情報

項目 マニュアルのページ等
ビット割り当て HR B-23
割り込みの解説 HR 3-25
デバイスID HR C-2
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |