これが終わったら、左ペインのProject ExplolerのTempSensorを右クリックして、コンテクストメニューから「Build Project」を選択するとプログラムのビルドが始まる。問題なければ数十秒で終了する(Photo29)はずで、これにてプログラムの開発は完了である。
最後に、プログラムをNios IIにロードする作業である。まずEclipseの「Run」→「Run Configuration」を選び、Project名に「TempSensor」を選ぶ(Photo30)。次にTarget Connectionタブを開く(Photo31)と、USB-Blasterが見えているはずだ。
ここで「System ID checks」にある「Ignore mismatched system ID」と「Ignore mismatched system timestamp」の両方にチェックを入れると、「Target Connection」タブの赤い×印が消える(Photo32)。これを確認して、まず右下の「Apply」ボタンを押した後で、さらに右下の「Run」ボタンを押すと、USB-Blaster経由でNios IIのSRAMにプログラムがロードされ、すぐにNios IIが実行を開始する。ちなみにSTDOUTに相当するものは、USB-Blaster経由のNios II Consoleになり、ここにメッセージが表示される仕組みだ(Photo33)。
さて、本当ならこのサンプルは1秒おきに温度を表示する他、基板上のディップスイッチにあわせて基板のLEDのOn/Offが操作可能な「はず」なのだが、実は上手く動かない。調べてみたところ、デバイスから本来入るべき割り込みが上手く拾えておらず、割り込み待ちのままずーっと無限ループに陥っている模様だ。
なんとなく、Photo10にあるようにIPの形で提供されるデバイスが14.1→15にVersion upされた際に何か仕様が変わっており、それを上手くフォローアップできていない感じがする。ただ逆にADCからの温度測定やDIPスイッチの設定取り込み/LEDの表示などを省くとちゃんと動作しているので、Nios IIそのものが正しく動作している事は間違いないようだ。次回はこのあたりを来月はもう少し追及してみたいと思う
Copyright © ITmedia, Inc. All Rights Reserved.