NXTSCR

NXTSCR ( Next System Configuraion )レジスタは、SWRSTによるソフトウェアリセット後のADSP-2191の動作を設定するレジスタです。

このレジスタは通常はストラップオプションで設定するブートモードをレジスタの設定で強制することができます。そのため、ハードウェアブート時とは異なる方法で再ブートすることも可能です。

レジスタの構造

このレジスタは16ビットのレジスタです。リセット後は0に初期化されます。

図1 レジスタの構造

以下に各ビットフィールドの説明を行います。詳しくはHRを参照してください。

BMODE2, BMODE1-0
これらのビットおよびビットフィールドは次のソフトウェアリセット時にどのようなブートを行うか決定します。
RMODE
  • 1のとき、次のソフトウェアリセット後に0番地から実行します
  • 0のとき、次のソフトウェアリセット後にBMODExに基づくブートを行います。
PFMODE
  • 1のとき、次のソフトウェアリセット後にPF15-8をフラグとして使い、バスを8ビットモードにします
  • 0のとき、次のソフトウェアリセット後にPF15-8をデータバスとして使い、バスを16ビットモードにします

BMODE 1-0とBMODE2の組み合わせは次のとおりです。

BMODE リセット後の動作
2 1 0
0 0 0 0x010000番地から始まる16ビットメモリーのプログラムを実行します。
0 0 1 EPROMブート
0 1 0 ホストブート
0 1 1 予約
1 0 0 0x01-0000番地から始まる8ビットメモリーのプログラムを実行します。
1 0 1 UARTブート
1 1 0 4KbitまでのSPI-ROMからブート
1 1 1 4Kbitを超え、512KbitまでのSPI-ROMからのブート

API

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

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

sysreg_write(sysreg_IOPG, Clock_and_System_Control_Page)     // クロックページに設定

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

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

// Definition of NXTSCR HR B-18
// Too avoid the trouble. BMODE_MASK and BMODE_OFST is not defined.
// Be careful that this definition takes 3 bits for BMODE, instead
// HR B-18 gives only 2 bits.
#define PFMODE          BIT_5
#define RMODE           BIT_4
#define BMODE_NOBOOT16  0x0000
#define BMODE_EPROM8    BIT_1
#define BMODE_HOST      BIT_2
#define BMODE_NOBOOT8   BIT_0
#define BMODE_UART      0x0003
#define BMODE_SPI4K     0x0005
#define BMODE_SPI512K   0x0007

参照情報

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