差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
altera:qsys:flashをniosiiのromとして使う [2012/05/13 07:46] kimu_shu |
altera:qsys:flashをniosiiのromとして使う [2012/09/19 22:15] (現在) kimu_shu [BSPの設定] |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
====== FlashをNiosIIのROMとして使う ====== | ====== FlashをNiosIIのROMとして使う ====== | ||
- | DE0のようにパラレルFlashを持っている場合、コードをFlash領域に置くことができる。 | + | 外付けのパラレルFlashやEPCSの残りの領域を使って、コードをFlash上に直接置くことができる。 |
* メリット | * メリット | ||
* 容量が大きい | * 容量が大きい | ||
* 電源投入するたびにプログラムを書き込まなくて良い | * 電源投入するたびにプログラムを書き込まなくて良い | ||
- | * デメリット | + | * デメリット(XIPの場合) |
- | * 遅い (Flashによる。DE0の場合アクセスタイムが70nsのため、RAMに比べると圧倒的に劣る) | + | * 遅い (Flashによる。DE0のパラレルFlashの場合アクセスタイムが70nsのため、RAMに比べると圧倒的に劣る。) |
* デバッグが不便 (**無償版コア NiosII/e のみの制限事項で、ハードウェアブレークポイントが使えない。**) | * デバッグが不便 (**無償版コア NiosII/e のみの制限事項で、ハードウェアブレークポイントが使えない。**) | ||
+ | |||
+ | なお、EPCSの場合はXIP不可(たぶん)。よってブート時にRAMに展開することとなる。 | ||
+ | |||
+ | ===== BSPの設定 ===== | ||
+ | .text, .rodata, .exceptionをROMに置きたい場合、以下のBSP設定をONすること。そうしないとリセットベクタや.dataセクションコピー等の重要なロジックが抜け落ちる…。 | ||
+ | * hal.linker.allow_code_at_reset | ||
+ | * hal.linker.enable_alt_load | ||
+ | * hal.linker.enable_alt_load_copy_rwdata | ||
+ | |||
+ | 「.exceptionだけRAMに置いたらFlashProgrammerがうまくやってくれる」という意見もあったが、少なくとも11.1sp2では | ||
+ | 適切なブートコピアを展開してくれないのでダメ。 | ||