第3回 Nios IIで遊ぼう Nios II Software Build Tools for Eclipse編

FPGA

関連記事 FPGAの記事一覧

スポンサーリンク

前回までのおさらい

第1回 Nios IIで遊ぼう 目標機能編
第2回 Nios IIで遊ぼう Quartus Platform Designer編
第4回 Nios IIで遊ぼう Nios II Command Shell編
第5回 Nios IIで遊ぼう パソコンからNiosへのコマンド送信編

第1回で目標の機能を決めて、第2回ではQuartusのPlatform Designerを使ってハードウェアの設計をしてきました。

第3回はソフトウェア設計の方法です。

Terasic DE0-NANO開発ボード 【P0082】

新品価格
¥14,520から
(2020/5/19 00:12時点)

Software Build Tools for Eclipse

ハードウェアの設計はQuartusを使ってきましたが、ソフトウェアの設計はEclipseを使って行います。

Eclipseは新規にダウンロードする必要はなく、Quartusと一緒にインストールされていました。

Software Build Tools for Eclipseを使ったソフトウェア設計

プロジェクトの作成

まずは”Software Build Tools for Eclipse”を起動します。

この時、ハードウェアで設計したデータはFPGAに書き込んでおきます。この後のソフトウェア設計は、DE0-NanoとパソコンをUSBでつないだままの状態で行います。

Software Build Tools for Eclipseが起動したら以下のウインドウが表示されるので、作業フォルダを選択します。

作業フォルダの選択が終わってOKボタンを押すと、以下のウインドウが表示されます。

次に、File -> New -> Nios II Application and BSP from Templateを選択します。

以下のウインドウが表示されます。

まずは、”SOPC Information File”を選択します。

下の画像の赤枠内のボタンをクリックします。

“SOPC Information File”は、ハードウェアの設計が成功していれば、プロジェクトフォルダ内に生成されています。

下の画像のように、拡張子が”.sopcinfo”というファイルがあるので、このファイルを選択します。

“SOPC Information File”の選択が終わったら、”Project name”を決めます。

ここでは、”soft_test”としました。

“Templates”は”Blank Project”を選択し、”Finish”をクリックします。

すると、以下のウインドウが表示され、”Project Explorer”のウインドウに”soft_test”と”soft_test_bsp”が表示されます。

次は、File -> New -> Otherを選択します。

以下のウインドウが開いたら、C/C++ -> Source Fileを選択し、”Next”をクリックします。

そしたら以下のウインドウが開くので、”Source folder”と”Source file”を選択します。

ここでは、”Source folder”に”soft_test”フォルダを選択しました。

“soft_test_bsp”というフォルダも生成されていますが、こっちのフォルダを選ばないように注意が必要なようです。

“Source file”は”soft_test.c”とし、”Finish”をクリックします。

すると、以下のようなウインドウが表示されます。

ソースコード設計

さて、ようやくソースコードの設計に到達しました。

ソースコードを”soft_test.c”のファイルに記述します。

私が設計したソースコードは以下です。(素人設計なので、おかしな点もあるかもしれませんが、ご了承ください)

動作としては、
・プログラムが起動すると”Hello World !!”と表示される
・Push SW0が押されている間、偶数番号のLEDが点灯
・Push SW1が押されている間、奇数番号のLEDが点灯
です。

ちなみに、LEDはLED0からLED7の8つです。

#include "sys/alt_stdio.h"
#include "system.h"

int main()
{
   unsigned char ucLED;
   unsigned char ucSW;

   alt_printf("Hello World !!");

   while(1){

      //Read SW status
      ucSW = *(volatile unsigned char *)SW_INPUT_BASE;

      if( (ucSW & 0x01) == 0x01 ){
         //SW0 Push
         ucLED = 0x55;
      }
      else if( (ucSW & 0x02) == 0x02 ){
         //SW1 Push
         ucLED = 0xAA;
      }
      else{
         ucLED = 0x00;
      }

      //LED control
      *(volatile unsigned char *) LED_OUTPUT_BASE = ucLED;
   }

   return (0);
}

soft_test_bspの設定

ソースコードの設計が終わったら、”soft_test_bsp”の設定をしていきます。

”Project Explorer”ウインドウの”soft_test_bsp”を右クリックします。

次に、Nios II -> BSP Editorを選択します。

“Main”タブの”Settings -> Common”を、以下の画像の設定にします。

次に、”Main”タブの”Settings -> Advanced -> hal -> linker”を、以下の画像の設定にします。

次に、”Linker Script”タブを選択し、以下の画像の設定にします。

設定が終わったら、”Generate”ボタンをクリックします。

これでsoft_test_bspの設定は終了です。

soft_testの設定

次は”soft_test”の設定です。

”Project Explorer”ウインドウの”soft_test”を右クリックします。

そしたら、Run As -> Run Configurationsを選択します。

以下のウインドウが表示されるので、”Target Connection”のタブを選択します。

下の画像の紫で囲ったように、”Cable”の欄には”USB-Blaster”の表示が出るとおもいます。

もし表示が出ていない場合は、点線赤枠の”Refresh Connections”をクリックします。

下の画像通りに設定したら、”Run”をクリックします。

ソフトウェアの実行

“Run”をクリックした後、問題がなければソフトウェアが実行されます。

下の画像のように、”Nios II Console”の欄に”Hello World !!”と表示されればソフトウェアは実行されています。

Push SWも押してLEDの動作も見てみましょう。

下の写真で、上はPush SW0を押した時、下はPush SW1を押した時です。

Push SW0を押せば、偶数番号のLED(LED0、LED2、LED4、LED6)が点灯し、
Push SW1を押せば、偶数番号のLED(LED1、LED3、LED5、LED7)が点灯しました!

目標通りにNiosが動作してくれたみたいですね!

ただ、まだEclipse上での動作なので、次回は設計したソフトウェアをFPGAに書き込んで、Eclipse無しで動作させたいと思います!

第1回 Nios IIで遊ぼう 目標機能編
第2回 Nios IIで遊ぼう Quartus Platform Designer編
第4回 Nios IIで遊ぼう Nios II Command Shell編
第5回 Nios IIで遊ぼう パソコンからNiosへのコマンド送信編

関連記事 FPGAの記事一覧

Terasic DE0-NANO開発ボード 【P0082】

新品価格
¥14,520から
(2020/5/19 00:12時点)

タイトルとURLをコピーしました