FlashをNiosIIのROMとして使う
外付けのパラレルFlashやEPCSの残りの領域を使って、コードをFlash上に直接置くことができる。
- メリット
- 容量が大きい
- 電源投入するたびにプログラムを書き込まなくて良い
- デメリット(XIPの場合)
- 遅い (Flashによる。DE0のパラレルFlashの場合アクセスタイムが70nsのため、RAMに比べると圧倒的に劣る。)
- デバッグが不便 (無償版コア 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では 適切なブートコピアを展開してくれないのでダメ。