個人情報保護方針 お支払いについて お問い合わせ

WSL利用のEclipseでのelf2hex


Quartus 19.2以降のQuartus Primeにおける"Nios II Software Build Tools for Eclipse"ではLinuxシェル(CUI)コマンドの実行にWSLを使用しています。それ以前はCygwinが使われていました。CygwinはLinuxのコマンドと同じものをWindowsで使えるようにしてあるのに対して、WSLはLinuxそのものを仮想PC(仮想シェル)として動作させます。つまりWSLのUbuntuのコマンドはLinuxのプログラムであり、Windowsのネイティブコードではありません。
ここで困ったことがあります。ずっと以前から用意されているelf2hex.exeやelf2flash.exe等のコマンドがWSL上で使えないということになります。HEXファイルはQSYS上のオンチップメモリなどにNios2CPUのプログラムやデータを置いておく際に使う初期化ファイルです。
WSL上で使えないということは、Makefileにルール記載して自動的にビルド時にhexファイルを生成することができないということです。以前は以下のようにMakefile中のELF生成規則のところに追記してHEXファイルを生成していました。



ELFが生成された時にelf2hex.exeを用いてHEXファイルを自動生成し、コンパイル用とシミュレーション用のフォルダにコピーしています。とても重宝していたのですが、これが使えません。

代わりに新しく追加された機能 "Extenal Tools"を使用します。





実行したい Windowsコマンド (WSLのコマンドではない)、実行する場所、引数を指定して名前を付けます。この例ではシミュレーション用のHEXファイルを生成して所定の場所にコピーします。この機能はWSLとは関係ないので従来のCygwinで使用していたWindows用プログラムが使えます。Makefileで自動生成はできませんが、ワンクリックで生成できるのでこれで十分代替できると思います。一度設定すればプロジェクトの設定として保存され、次回起動時も使用できます。

アクセスカウンター アクセスカウンター