E_STAT

E_STAT( External Control/Status )レジスタは外部メモリーやブートメモリーへのアクセス方法の設定、およびステータス表示を行います。

ブートメモリーは通常はプログラムからはアクセスできません。しかし、E_STATの設定を変更すると、MSxピンのかわりにBMSピンが駆動されてアクセス可能になります。ブートメモリー空間はアドレス空間の図1に示すようにプログラムから見ると0x01_0000番地から0xFE_FFFF番地にマッピングされます。

EMI関連レジスタのうち、このレジスタだけはIOPGにExternal_Access_Bridge_Pageを設定します。

レジスタの構造

このレジスタは16ビット整数レジスタです。初期値は0x0000です。

図1 レジスタの構造

E_PI_BE : PM Insruction from Boot Space Enable

命令の読み込みをブートメモリ空間から行います。

  • 0 : 外部メモリー空間から読み出します。
  • 1 : ブートメモリー空間から読み出します。
E_PD_BE : PM Data from Boot Space Enable

PMバス経由のデータアクセスをブートメモリー空間に対して行います。

  • 0 : 外部メモリー空間をアクセスします。
  • 1 : ブートメモリー空間をアクセスします。
E_DD_BE : DM Data from Boot Space Enable

DMバス経由のデータアクセスをブートメモリー空間に対して行います。

  • 0 : 外部メモリー空間をアクセスします。
  • 1 : ブートメモリー空間をアクセスします。
E_WPF : Write Pending Flag

ペンディング状態の書き込みデータがあるかどうかを表示します。コア書き込みは優先順位が低いため、DMAによってペンディングにされる場合があります。ADSP-2191はストアバッファを持っており、書き込みデータがメモリーに格納されたかどうかにかかわらず命令が先に進みます。そのため、アプリケーションによってはE_WPFを確認しなければならない状況があるかもしれません。

  • 0 : ペンディング状態のデータはありません。
  • 1 : ペンディング状態のデータがあります。

API

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

EMIレジスタの中でE_STATだけがExternal_Access_Bridge_Pageを使います。

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

sysreg_write(sysreg_IOPG, External_Access_Bridge_Page)   // SPI0ページに設定

io_space_write(E_STAT, 値)         // E_STATに値を設定
変数 = io_space_read(E_STAT)       // E_STATの値を取得

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

// Definition for E_STAT (HR B-92)
#define E_WPF                   BIT_8
#define E_DFS                   BIT_3
#define E_DD_BE                 BIT_2
#define E_PD_BE                 BIT_1
#define E_PI_BE                 BIT_0

参照情報

項目 マニュアルのページ等
レジスタ構造 HR B-92
説明 HR 7-11
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |