E_STAT( External Control/Status )レジスタは外部メモリーやブートメモリーへのアクセス方法の設定、およびステータス表示を行います。
ブートメモリーは通常はプログラムからはアクセスできません。しかし、E_STATの設定を変更すると、MSxピンのかわりにBMSピンが駆動されてアクセス可能になります。ブートメモリー空間はアドレス空間の図1に示すようにプログラムから見ると0x01_0000番地から0xFE_FFFF番地にマッピングされます。
EMI関連レジスタのうち、このレジスタだけはIOPGにExternal_Access_Bridge_Pageを設定します。
このレジスタは16ビット整数レジスタです。初期値は0x0000です。
図1 レジスタの構造
命令の読み込みをブートメモリ空間から行います。
PMバス経由のデータアクセスをブートメモリー空間に対して行います。
DMバス経由のデータアクセスをブートメモリー空間に対して行います。
ペンディング状態の書き込みデータがあるかどうかを表示します。コア書き込みは優先順位が低いため、DMAによってペンディングにされる場合があります。ADSP-2191はストアバッファを持っており、書き込みデータがメモリーに格納されたかどうかにかかわらず命令が先に進みます。そのため、アプリケーションによってはE_WPFを確認しなければならない状況があるかもしれません。
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 |