連載
» 2016年06月14日 14時00分 公開

MAX 10 FPGAで学ぶFPGA開発入門(11):「MAX 10 NEEK」でストップウォッチを開発し、内蔵メモリから起動する (9/10)

[大原 雄介,MONOist]

 QSYSでハードウェアの構成変更を行ったので、stopwatch_bspのコンテクストメニューから"Nios II" → "Generate BSP"を呼んでBSPの再構成を行う。その後でもう一度"Nios II" → "BSP Editor"を起動する。

 ここで左のツリーを下の方までスクロールしてゆくと、"Settings" → "Advanced" → "HAL" → "Linker"という項目がある。このHAL.Linkerの5つのチェックボックスに全てチェックを入れておく(Photo14)。

 続いて上のTabを"Main"から"Linker Script"に切り替えると、セクション毎にどこに保存するかの指定があるが、ここで.textを"onchip_memory2_0"から"onchip_flash_0_data"に切り替える(Photo15)。以上でBSPの変更は完了したので、もう一度Generateボタンを押してBSPの再生成を行い、終了する。

photo Photo14:デフォルトでは"enable_alt_load_copy_rodata"と"enable_alt_load_copy_exception"にはチェックが入っていない
photo Photo15:その他の箇所は変更不要

 続いてEclipseに戻り、まずstopwatch_bspの再ビルドを行った後、stopwatchの方のコンテクストメニューから"Make Targets" → "Build..."を選ぶ(Photo16)。するとTargetメニューが出てくる(Photo17)ので、ここで"mem_init_generate"を選択した上でBuildボタンを押すと、通常のelfファイルではなく、Flashに組み込むためのHEXファイルが生成される。以上でEclipseでの作業は終了し、再びQuartus IIに戻る。

photo Photo16:stopwatch_bspの方は、自動で再ビルドが掛かるはずであるが、まぁ一応明示的に
photo Photo17:ここでBuildボタンを押すと、まずelfファイルのBuildが行われた後に、これをHEXファイルに変換してくれる

 Quartus IIは、"File" → "Convert Programming File..."からConverter画面(Photo18)を立ち上げる。ここでまず"Mode"を"Internal Configuration"に切り替えてから"Options/Boot info..."ボタンを押すと"MAX 10 Device Options"画面が出てくる(Photo19)。

photo Photo18:標準は外部のFlashに格納(というか内蔵Flashを持っているのがMAX 10しかない)なので、Modeの切り替えでいろいろ変わる
photo Photo19:この画面は、そんなわけでPhoto18でModeをInternal Configurationにしない限り出てこない

この画面で、

  • UFM sourceを"Page_0"から"load memory file"に変更。
  • その下のファイル選択ボタンを押し、mem_initフォルダの下に生成されたonchip_flash_0.hexを指定。

を行う(Photo20)。完了したら"OK"ボタンを押してこの画面は終了である。

photo Photo20:File Pathがグレーアウトされているのでちょっと分かりにくい

関連キーワード

アルテラ | FPGA関連 | Eclipse


Copyright © ITmedia, Inc. All Rights Reserved.