富士通

FRファミリーFAQ目次へ

FAQ

CPUについて

  1. D-Bus、C-Busに接続されているRAMの違いは何ですか? (対象:MB91126)
  2. SSP(システムスタック)とは、どのようなものですか?
  3. スタックポインタについて、設定に関して何らかの制約事項はありますか?
  4. スタンバイモードからの復帰時は、割り込み要因だけでは復帰せずに割り込みがイネーブルされている必要がありますか?
  5. 内部RAMをプログラム領域として使用できますか? (対象:MB91101)
  6. リトルエンディアン領域への設定は可能ですか? (対象:MB91101)
  7. 領域0にはプログラムメモリが配置されますが、領域0の設定中でも、プログラムメモリへのアクセスは支障ないですか? (対象:MB91301)
  8. 「領域の設定はオーバラップしないように」ということですが、リセット時、領域0が全域になっています。まず領域0を設定してから、他の領域の設定を行なう必要がありますか? (対象:MB91301)
  9. モードベクタを読み出すときのバス幅は何bitですか? (対象:MB91301)
  10. 内部の32bitデータを16bit幅の外バスにwriteする場合、どうなりますか? (対象:MB91F155)
  11. あるプログラムルーチンのみをキャッシュに入れて、そのプログラムルーチンをキャッシュから出ないようにしたいのですが、可能ですか? (対象:MB91101、MB91301、Mb91307)
  12. ステップ除算用フラグやステップトレーストラップフラグとは何ですか?
  13. インターロック機能とは、どうやって使用しますか?

1. D-Bus、C-Busに接続されているRAMの違いは何ですか? (対象:MB91126)

D-Bus接続RAM:データRAM領域

C-Bus接続RAM:命令実行及びデータRAM領域としても使用可能(注:FR60ではF-Bus RAM)

2. SSP(システムスタック)とは、どのようなものですか?

スタックポインタにはSSPとUSPの2つ在りますが有効な方のスタックポインタをR15として操作参照します。この際、どちらが使用されるかはPSレジスタのSフラグで決定され、初期値はSSPが有効となっています。SSPは割り込み時のスタックポインタとして使用されます。USPはユーザアプリケーションで使用することも可能です。

3. スタックポインタについて、設定に関して何らかの制約事項はありますか?

スタックへはワードアクセスを行ないますので、アライメントを4の倍数のアドレスに設定してください。

4. スタンバイモードからの復帰時は、割り込み要因だけでは復帰せずに割り込みがイネーブルされている必要がありますか?

FR60seriesの場合 : ストップモードからの復帰は、割込みが許可されている必要があり、割込みルーチンにジャンプする必要があります。
FR30seriesの場合 : ストップモードからの復帰は、割込みが許可されている必要がありますが、割込みルーチンにジャンプする必要はありません。

5. 内部RAMをプログラム領域として使用できますか? (対象:MB91101)

内部RAM(0x1000-0x17FF)には、DATAbusがつながっているので、DATA用のRAMとして使用してください。

6. リトルエンディアン領域への設定は可能ですか? (対象:MB91101)

Little Endian Register(0x7FE)の設定で領域1~5のどれか1領域をリトルエンディアン領域として使用することが出来ます。但し、デバイスの接続方法に違いがありますので注意願います。

7. 領域0にはプログラムメモリが配置されますが、領域0の設定中でも、プログラムメモリへのアクセスは支障ないですか? (対象:MB91301)

アクセス可能ですが、実行中のプログラム有る領域が、CS0領域以外の設定とならないようにご注意ください。リセット後、ACR0への最初の書込みより、全領域設定が解除され、指定のサイズに設定されます。

8. 「領域の設定はオーバラップしないように」ということですが、リセット時、領域0が全域になっています。まず領域0を設定してから、他の領域の設定を行なう必要がありますか? (対象:MB91301)

最初に、領域0の設定を行ない、重ならない空間に他の領域を設定してください。領域0のバス幅の設定はあらかじめ、モードベクタ(0xFFFF8)で設定しておく必要があります。

9. モードベクタを読み出すときのバス幅は何bitですか? (対象:MB91301)

モードベクタは、0xFFFF8番地に配置する8bit長のデータで8bitバスでアクセスします。どのバス幅でもメモリとアクセス出来る最小バス幅の設定になります。

10. 内部の32bitデータを16bit幅の外バスにwriteする場合、どうなりますか? (対象:MB91F155)

外バスに対し32bit幅のデータアクセスを行う場合は、16bit×2回に分割されます。

11. あるプログラムルーチンのみをキャッシュに入れて、そのプログラムルーチンをキャッシュから出ないようにしたいのですが、可能ですか? (対象:MB91101、MB91301、MB91307)

以下の様な手順で、I$領域をRAM領域として設定し、実行してください。
キャッシュのenable-bitをセットしておきます。
1. EOLKビットを1にセット
2. ロックさせたい関数を実行
3. EOLKビット0クリアする
これで実行プログラムをロックすることが可能です。

12. ステップ除算用フラグやステップトレーストラップフラグとは何ですか?

ステップ除算フラグはステップ除算演算途中の結果を保持しておくレジスタですので、書き換えを行わないようにしてください。また、ステップトレーストラップフラグはツールで使用するフラグですので、操作しないようにお願いします。

13. インターロック機能とは、どうやって使用しますか?

インターロックは、LD系命令の直後で、LD対象のレジスタを参照する命令が続く場合などに発生します。これにより、レジスタハザードを意識しないプログラミングが出来ます。Softuneアセンブラでは自動的にインターロックが起きないよう最適化されます。