はじめに
この記事では RISC-V アーキテクチャーを採用した Nios® V プロセッサー(以降 Nios® V と表記)で使用するソフトウェア・サイズの削減方法についてご紹介します。
従来のソフトコア・プロセッサーである Nios® II プロセッサー(以降 Nios® II と表記)は、 2023 年冬のリリース(Quartus® Prime Pro v23.4, Quartus® Prime Standard v23.1)が最後となるため、より新しいバージョンを使用される場合には Nios® V へ移行することとなります。
Nios® II から Nios® V へ移行する際にソフトウェアのサイズが問題になるような場合、本記事で紹介する内容をご確認ください。
1. アプリケーション・プロジェクトでの削減方法
アプリケーション・プロジェクト内のソフトウェアの削減方法については下記の記事でご紹介しています。
参考:Nios® V デバッグ手法:Optimization Level の変更
2. BSP プロジェクトでの削減方法
2-1. BSP-Editor のチェックボックス・オプション設定
この項でご紹介するオプションは、BSP-Ediitor のチェックボックスにより有効 / 無効を設定できるオプションです。
Common Setting | |
| オプション名 | 概要 |
enable_reduced_device_drivers |
低サイズモードのドライバーが用意されている IP に対して有効なオプションです。コードのサイズが小さくなります。 |
enable_sim_optimize |
キャッシュの初期化、.bss セクションのクリア、長い遅延ループを省略する等、HDL シミュレーションを高速化するための最適化を行います。 |
use_picolibc |
このオプションを有効にすることで使用するライブラリーを Newlibc から、サイズが小さい Picolibc に変更します。 |
Advanced Settings | |
| オプション名 | 概要 |
enable_lightweight_device_driver_api |
ファイル・ディスクリプターにデバイス名を割り付ける機能(例 /dev/uart0)が削除されて、ドライバーのコードサイズやデータサイズが小さくなります。open(), close(), lseek() ルーチンが機能しなくなるため、ご使用時には注意が必要です。 |
2-2. BSP-Editor の Cflags オプション設定
この項でご紹介するオプションは、コンパイラーのフラグとして、ユーザーが自由に設定できるオプションです。
Common Settings | |
| オプション名 | 概要 |
cflags_debug |
コンパイラーのフラグを指定します。 |
cflags_optimaization |
Build Type が Release 時にコンパイラーの最適化レベルを指定します。 |
Advanced Settings | |
| オプション名 | 概要 |
cflags_user_flags |
C、C++、.S ファイルをコンパイルする時、コンパイラーに渡されるフラグの設定ができます。 |
cflags_cxx_flags |
C++ のコンパイル時に有効なフラグの設定ができます。 |
cflags_link_flags |
リンカー実行時に有効なフラグの設定ができます。 |
おわりに
この記事では Nios® V でのソフトウェア・サイズの削減方法についてご紹介しました。 Nios® II からのソフトウェア移植時にぜひ参考にしていただければ幸いです。
Nios® V プロセッサーに関する情報については、下記メーカーのページより詳細をご確認いただけますので併せてご参照ください。
参考: Nios® V Processor Developer Center
また、弊社では Nios® V に関する情報をまとめた「Nios® V まとめページ」をご用意しております。本記事以外にも有用な情報がありますので、こちらも併せてご確認ください。