SSブログ

BCMLIB_FOR_JAVAにバグが見つかった [JAVAで開発]

(2015.07.23)
BCMLIB_FOR_JAVA(これです)はRaspberry piのペリフェラル(GPIOとかI2Cとか)をJAVAで操作するライブラリで、そのI2Cライブラリを使ってOsciLogiの開発を進めてきました。

これまで、特に問題は生じていなかったのでライブラリとしてそこそこ動いている(出来上がっているもの)と思っていました。ところが・・・

I2C経由でPICのステータスを読み取る機能を(I2C割込が入るとOsciLogi のサンプリングに影響するので)、GPIOを介してPICのステータスを読み取る機能に変更したのですが、これが動いてくれません。orz

デバイスファイルを操作すると正しく読み取れるので、PICとRaspiの接続に問題は無く、プログラムのバグが疑われます。

<デバイスファイルの操作はこんな感じ>
echo 17 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio17/direction
cat /sys/class/gpio/gpio17/value
1
cat /sys/class/gpio/gpio17/value
0

BCMLIB_FOR_JAVAを使ってGPIOの出力を操作したことはあるのですが、実はGPIOの入力は今回が初めてです。ライブラリのどこかに不具合があるのですが、(自分で作ったライブラリとは言え)二年も経つとどんなプログラムだったか、すっかり忘れています。orz

あちこち覗き込んで、少しずつ仕組みが見えてきました。全部で四つのプログラムで構成されていま(す)した。

JAVA<==>libbcm_interface.so<==>shared memory<==>bcm2835_for_java

古典的な(コマンドの実行経路にprint文を挿入するという)手法で順番に調べていって、libbcm_interfaceが実行結果を読み取る所で失敗していることが判りました。

プログラムを修正して一件落着

やれやれ
-------------------
もう少し調べてから、GITに登録したファイルを更新します。


にほんブログ村 IT技術ブログへ
にほんブログ村 ネットブログ コミュニティサイトへ
にほんブログ村 IT技術ブログ オープンソースへ

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。