exStickGEでHTTPサーバを建ててLチカしてみた

技術紹介

前回はexStickGE上のMicroBlazeで動作するLinuxにEthernetを追加しました.
ネットワークにつながったので今回はHTTPサーバを建ててみたいと思います.
ついでにLEDのLチカを追加します.(ついでと言う割には作業量は結構増えます)

ビルド

HTTPサーバは軽量なlighttpdを使用します.
~/Project以下にserverprjディレクトリを作成し主にその中で作業する予定です.
MicroBlazeのクロスコンパイルはこのディレクトリ以下のソフトウェアを使用します.

/tools/Xilinx/Vitis/2020.1/gnu/microblaze/linux_toolchain/lin64_le/microblazeel-v11.0-bs-cmp-re-mh-div-xilinx-linux

サーバのビルドの下準備

lighttpdをビルドするのに必要な以下のライブラリをビルドしてインストールします.

  • zlibc
  • pcre
  • fastcgi (Lチカするときに使用する)
zlibc

pcre

fastcgi

lighttpdのビルド

最低限のライブラリをビルドしたのでlighttpdをビルドします.

コンフィグファイルの生成

lighttpdのサンプルコンフィグファイルがdoc/config以下に保存されているので
serverprjディレクトリにコピーして事前に編集しておきます.

libhttpd.confを編集し93行目をコメントアウト

modules.confを編集し146行目をアンコメント

conf.d/fastcgi.confを編集し8行目以下を編集

Lチカプロジェクトの生成

lchikaディレクトリ内に”lchika.c”として以下のファイルを作成します.

コンパイルします.

実際に動かしてみる

ここまでで必要なライブラリ及びソフトウェアが揃ったので実際に動かしていきます.
シリアル通信モジュールを接続し,前回同様にJTAGで動かします.

ユーザ名及びパスワードはrootでログインします.

インストール

ここからは地道にビルドしたソフトウェアをコピーしてきます.

アクセス

ipコマンドでIPアドレスを調べます.今回は192.168.0.215でした.

http://192.168.0.215/にアクセスしてみましょう.

次はLEDを操作します.
http://192.168.0.215/gpioctl.fcgiがアドレスでパラメータを用いて制御します.
ledが0~2で上の図の509~511に対応します.
valは0か1で0=消灯,1=点灯に対応します.
例えば以下のURLであればシルクでLED4の緑色が点灯します.
http://192.168.0.215/gpioctl.fcgi?led=1&val=1

全部点灯させてみました.
http://192.168.0.215/gpioctl.fcgi?led=0&val=1
http://192.168.0.215/gpioctl.fcgi?led=2&val=1

まとめ

Ubuntu上でMicroblaze用のソフトウェアをコンパイルし実機上で動作を確認できました.

現状はシンプルに起動したあとソフトウェアを追加する形をとっています.
実際に運用する場合にはすべてまとめた状態にするべきですが,
リセットすれば初期化されるのでこれはこれで便利だと思っています.

HTTPによる制御が可能になったのでブラウザ経由で
FPGAがかんたんに操作できます.
是非試してみてください.

コメント

  1. […] Sierra Wireless社のLegatoフレームワークにもlighttpdを使用したサンプルアプリケーションが存在します.しかし今回はWP7605を通常のLinuxマシンのように使用する前提で別途lighttpdをビルドしサーバとして運用することにします.以前MicroBlazeで使用したのを参考にビルドしていきます. […]

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