Phidgetのデータをc言語で処理@Ubuntu 第1回

Written by tjun on 2008 年 6 月 27 日 – 2:01 PM -

Phidgets というのは有名なセンサーノードの一つで,日本でも買えます.

Phidgets 取扱製品一覧 - ぷらっとオンライン

基本的なキット(おそらく5万円程度)で,明るさセンサ,タッチセンサ,圧力センサ,スライダーセンサ,つまみ型センサ などがついてくるんだと思います.詳しくはぷらっとオンラインのページをご覧ください.
自分は研究室にあったキットを使いました.

今回はプログラムを書くための準備の説明です.

LinuxにおいてPhidgetsを扱うプログラムを書くためには,まずPhidgetsのサイトから必要なものをダウンロードします.トップページから左側のメニューにあるDownloadsペンギンの絵をクリックします.

Step 1 と書いてある部分からLinux Sourceをダウンロードします.

Step 2 から開発プラットフォーム(今回はC/C++)を選んで,

Step 3 からC/C++のExamplesと, C API Manualをダウンロードしましょう.

最初にダウンロードしたファイル(Phidgetlinux_x.x.x.2008xxxx.tar.gzという感じの名前)を展開すると.Phidgetlinuxというファイルができると思います.中にはphidget21、webserviceというフォルダ,READMEがあるかと思います.

READMEを読めば分かるのですが,次にターミナルでphidget21のディレクトリまでいきます.

cd (展開したフォルダ名)/Phidgetlinux/phidget21
そこで,
make

sudo make install

と打つと,プログラムを行う準備ができます.

今日はここまで.

関連する投稿


Tags: , , , ,
Posted in c言語, linux, ubuntu, プログラミング | No Comments »

c言語プログラムのメモリチェックをvalgrindで

Written by tjun on 2008 年 5 月 15 日 – 11:36 AM -

まずvalgrindの導入.

ubuntu-linuxであれば

sudo apt-get install valgrind
で入れることができる.

使いかたは,簡単.

まずプログラムを書いて,-gオプションをつけてコンパイルします.
gcc  -g hoge.c
そして,チェック
valgrind ./a.out
ではこれで実際どのようになるのか,簡単な例で見てみましょう.

hoge.c


#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int *num = malloc(10*sizeof(int));
num[10] = '1';
}


配列を越えて書き込んでいます.これをチェックすると
==3734== Invalid write of size 4==3734==  at 0x804839A: main (hoge.c:7)
==3734== Address 0x417B050 is 0 bytes after a block of size 40 alloc'd
==3734== at 0x4021620: malloc (vg_replace_malloc.c:149)
==3734== by 0x8048390: main (hoge.c:6)
==3734==
==3734== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 11 from 1)
==3734== malloc/free: in use at exit: 40 bytes in 1 blocks.
==3734== malloc/free: 1 allocs, 0 frees, 40 bytes allocated.
==3734== For counts of detected errors, rerun with: -v
==3734== searching for pointers to 1 not-freed blocks.
==3734== checked 59,628 bytes.
などど出て,hoge.cの6行目で不正なメモリアクセスがあるとわかります.
本当はもっとたくさん文章が出てきます.

ですが,この程度のチェックならコンパイル時に
gcc -Wall -g hoge.c
とすれば,はじいてくれます.-Wallオプションもいつもつけるようにしましょう.

関連する投稿


Tags:
Posted in c言語 | No Comments »
RSS