トップ «前の日記(2003年05月12日) 最新 次の日記(2003年05月15日)» 編集
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2003年05月13日 曇り

[linux]

debian/woodyでの無線LANカードの設定メモ
iwconfigコマンドをインストールするため
# apt-get install wireless-tools
無線LANがまだ使えない状況でどうやってapt-getするかは突っ込まないコト
/etc/pcmciw/wireless.optファイルを編集
# NOTE : Remove the following four lines to activate the samples below ...
# --------- START SECTION TO REMOVE -----------
#*,*,*,*)                 ←ここをコメントアウト
#    ;;                   ←
#
 
      中略
 
# Pick up any Access Point, should work on most 802.11 cards
#essidany,*,*,*)          ←ここもコメントアウトしたほうが
#    INFO="Any ESSID"     ←いいかもしれない(不明)
#    ESSID="any"          ←
#    ;;                   ←
 
      中略
 
# Lucent Wavelan IEEE (+ Orinoco, RoamAbout and ELSA)
# Note : wvlan_cs driver only, and version 1.0.4+ for encryption support
*,*,*,00:60:1D:*|*,*,*,00:02:2D:*)
    INFO="Wavelan IEEE example (Lucent default settings)"
    ESSID="Wavelan Network"   ← ここと
    MODE="Managed"
#    RATE="auto"
    KEY="s:secu1"             ← ここを書き換える。なお
    ;;                          "s:パスワード" のように
                                 s:は必ずつける!!!
ちなみにこれはCAT709で無線LANカードを使う時も同じ。

[CAT709]

TOPPERSを動かそうと思い立った。0日目の今日はTOPPERSをlinuxの上で動かして動作の雰囲気をつかむ。linuxの上で「動かす」とはlinuxの1プロセスの中でITRONとして動かすのでリアルタイム性は実現できないが、コードがちゃんと動くかの検証目的に使える。binutils-dev をインストールしておく必要があるので先にインストールしておく
# apt-get install binutils-dev
TOPPERSから jsp-1.3.tar.gz をダウンロードして解凍する。
練習DIRにてTOPPERSソースを解凍する
$ mkdir rensyu-dir
$ cd rensyu-dir
$ tar xzfv jsp-1.3.tar.gz
jspというディレクトリができる
$ cd jsp
アプリケーション毎にディレクトリを掘るらしい
$ mkdir rensyu-appr
$ cd rensyu-appr
コンフィギュアを起動。-C でCPUタイプを指定する。
linux上で動かす時は -C linux とする。
$ ../configure -C linux
$ ls
Makefile  sample1.c  sample1.cfg  sample1.h
sample1.cというプログラムがこれから動かすプログラムだ。
ざっとソースを見てからコンパイル。
$ make depend
$ make
jspという実行ファイルが出来上がる。これがTOPPERSとsample1.cをコンパイルしてリンクされた実行ファイルだ。早速実行だ。
$  ./jsp
JSP Kernel Release 1.3 (patchlevel = 0) for Linux (May 13 2003, 21:48:18)
Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory
                            Toyohashi Univ. of Technology, JAPAN
Serial driver service starts on port 1.
System logging task is started on port 1.
Sample task starts (exinf = 0).
task1 is running (001).   |
tSegmentation fault
って、いきなり死亡。 http://www.ertl.ics.tut.ac.jp/TOPPERS/TOPPERS-USERS/200211/msg00006.htmlによると、
おそらく,segmentation faultしている理由はログタスクのスタックサイズが
不足しているためだと思われます.
#私の環境(Debian 3.0(2.4.17))ではこれが原因で落ちていました.
./include/logtask.h の
#define LOGTASK_STACK_SIZE  1024
を倍の
#define LOGTASK_STACK_SIZE  2048
に変更すると動作すると思います.
ということなので気を取り直して、vi ../include/logstack.h して修正してから
$ make 
ebihara@pen3:/tmp/jsp/rensyu-appr$ ./jsp
JSP Kernel Release 1.3 (patchlevel = 0) for Linux (May 13 2003, 21:50:29)
Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory
                            Toyohashi Univ. of Technology, JAPAN
Serial driver service starts on port 1.
System logging task is started on port 1.
Sample task starts (exinf = 0).
task1 is running (001).   |
task1 is running (002).   |
task1 is running (003).   |
task1 is running (004).   |
動いた。doc/linux.txt を読んだところによると、TOPPERSはデバイスに対してNONBLOCKINGでopenするようなのでTOPPERSのプロセスは常にRUNNINGしているようだ。予想どおり
  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
22358 ebihara   15   0   376  372   308 R    99.7  0.0   0:10 jsp
となっているので、ロードアベレージは1.0に向かって上昇する。「Linuxの上でスレッドの勉強がしたい」といった勉強用には使えるが、このままでは組み込み装置には向かない。(もちろんlinux上で動かしてはリアルタイム性がないのでそもそも装置制御は無理だ)