1. 概要
この記事では Nios® V プロセッサー(以降 Nios® V )のアプリケーションの Optimization Level の設定方法について紹介します。
この記事は Nios® V のプロジェクトの作成手順を理解していることを前提とした記事になっています。Nios® V のプロジェクトの作成手順については、下記記事をご参照ください。
参考資料:Ashling* RiscFree* IDE を使用した Nios® V プロジェクト開発手順
2. 設定方法
Optimization Level の設定方法は Nios® II SBT とは異なります。
Nios® V では Optimization Level を、アプリケーション・プロジェクト作成時に使用するコマンドで設定することが可能です。このコマンドの引数として、-DCMAKE_BUILD_TYPE を設定することで、Build 時に Optimization Level を設定する仕様となっております。
この章では引数の追加がどのファイルに反映されるかも含めてご紹介します。
まず【図1】に Optimization Level を設定するコマンドを示します。
【図1】Optimization Level の設定コマンド
【図1】の赤枠の -DCMAKE_BUILD_TYPE に "Debug" もしくは "Release" を設定することで、下記ディレクトリに格納されている flags.make に反映されます。
<Quartus Project>\software\app\build\Debug\CMakeFiles\sample.elf.dir
このファイルから【図2】の引数を編集して、直接 Optimization Level を設定することも可能です。
【図2】Optimization Level コマンドの反映先
メモ:DCMAKE_BUILD_TYPE に "Debug" を入力した際に反映される "-g" は、デバッグ用のシンボル情報を実行ファイルに含める Option です。Optimization Level としては デフォルトの "O0" が適用されます。
Optimization Level の種類については、下記ディレクトリーのドキュメントよりご参照ください。
<Quartus Install Directory>\<Version>\riscfree\toolchain\riscv32-unknown-elf\share\doc\gcc
gcc.pdf 3.11 Options That Control Optimization
【図3】はそれぞれ同じソース・ファイルに対して、-DCMAKE_BUILD_TYPE を変えてプロジェクトを作成し Build した際の Log です。
-DCMAKE_BUILD_TYPE=Release にした場合はデバッグ用のシンボル情報が含まれなくなり、Optimization Level が "O2" に設定されるため、プログラム・サイズが小さくなっていることが確認できるかと思います。
【図3】各種実行 Log
Optimization Level の設定方法については以上です。
おわりに
Nios® V プロセッサーに関する情報については、下記メーカーのページより詳細をご確認いただけますので、併せてご参照ください。