トップ 最新 追記
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年02月01日 寒いな〜

CAT709

今日はネタがないのでオーバークロックの話。176MHzでも安定して動くよん。FRQCRレジスタの設定値(逓倍率)変えるだけ。もちろん無保証自己責任。

風邪

治り気味

サルサ

土曜日はエルココの日だし、さらに第一土曜日はEMSで生サルサなんだけども、さすがーに、熱ある状態だったから止めておいた。女の子にうつしちゃったら悪いしね。なんて。そういえば今年はまだEMSにいってないなぁ。マコンドも久しぶりに行ってみたい。つれってよ>Junkyさん。


2003年02月02日

CAT709

拡張CFソケットで無線LANを動かし続けてます。毎秒1回の普通のping。エージング3日目で 0% packet loss

ime.nu?

昨日ime.nuからのreferが沢山だ。これって2chからのリンクだよな。

100ns

ニュースで、「核爆弾が爆発する工程は一千万分の1秒」と言っていた。てことは100nsか。100ns以内にウラン235を主成分とした各種金属が核分裂反応していくタイミングを合わせこむ必要があるそうな。

100nsといえば光が30m進む時間、1GHzのCPUでは100命令実行できる時間。SH3ではせいぜい数命令〜10命令くらいかな。とにかく一瞬だわ。ちなみにストップウォッチの連続早押しは200msくらい。


2003年02月03日 風邪治った

CAT709

mgettyとPPPの実験をした。もう使っていないISDN-TAを内線交換器として利用し、モデム2台を使って実験。debian/sh3 でも mgettyは正常に動作する。さすがDebianである。apt-get source、dpkg-buildpackage の流れでOKだ。/etc/ppp や /etc/mgetty は PC用のものをそのまま利用可能だ。写真の実験風景なーんかめちゃ懐かしいニオイがするぞ。'95年くらいに戻った気分。

XAX

納期逼迫のため休み(A^^;;


2003年02月04日 iohackオフ会

iohackオフ会

想像通り?かなり濃ゆいオフ会でした。笑。 場所は秋葉原のTRONTO

テーブルの上は即席hacking大会

細渕さん力作のグラフィック液晶パネル

ゲイジュツテキにきれいな青色LED

上京1日目

仕事

2003年02月05日 帰れない人

上京2日目

お仕事

サルサ

水曜日はライムストーンでサルサの日なのに名古屋に帰れなかった(;_;)

話によると Kiarita, Sonrisa, Junky, Ischuteが来てたそうな。

KiaritaとJunky久しぶりです。くやしい。


2003年02月07日 金曜日

CAT709

debianのdateコマンドとbusybox の組み込みdateコマンドの書式が違うので戸惑う。busyboxのdateコマンドの-sオプション(SET)の書式がわからなかったので結局ソースを見て判明した。
} else if (t=*tm_time,sscanf(t_string, "%d.%d.%d-%d:%d:%d",
                                          &t.tm_year,
                                          &t.tm_mon,
                                          &t.tm_mday,
                                          &t.tm_hour,
                                          &t.tm_min, &t.tm_sec) == 6) {
と、ソースに書いてあった。デリミタは . と - だ。つまり
# date -s "2003.2.7-22:45:00"
Fri Feb  7 22:45:00 UTC 2003
# hwclock --systohc
# hwclock
Fri Feb  7 22:45:09 2003  -0.719862 seconds
おっけー

hwclock

/dev/rtcデバイスドライバに対応した。大変だった(*_*)

オリジナルのsh-linuxの方針と同じように、CMOS_READ()とCMOS_WRITE()を横取りしてPCのCMOS-CLOCKをエミュレーションする方法を用いた。この方法を使うと drivers/char/rtc.c は触らなくて済む。drivers/char/rtc.c は mc146818用のドライバだ。CMOS_READとCMOS_WRITEを横取りしてRTC9701JEのレジスタをmc146818に見せかける作戦である。当然、機能や時計の仕組みなんてぜんぜん違う。

hwclockコマンドは/dev/rtcの「1秒桁上がり割り込み」を使う。1秒桁上がり割り込み発生を待ってから時計を読むことによって桁上がりマタギでデータがおかしくなる不具合を回避する方法だ。そのためにCAT709で使っているRTC9701JEをまじめに設定して、同じように1秒桁上がり割り込みまで対応させた。ついでに時分秒が一致したときのALARM割り込みにまで対応させちまった。いや、普通にドライバ書くなら難しくないんだ。PCで使っている時計IC(mc146818)の真似をするのに苦労したんだ。

残件

・RTCインターバルタイマー割り込み(使ってるヤツいるのか?)

ローカルタイム

# ls -l /etc/localtime
lrwxrwxrwx 1 root root 30 Feb  7 23:29 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
さらに、hwclockコマンドを使うときは必ず --localtime オプションをつける
/ # date
Fri Feb  7 23:38:19 JST 2003
/ # hwclock --systohc --localtime
/ # hwclock --localtime
Fri Feb  7 23:38:32 2003  -0.821595 seconds
/ # hwclock
Fri Feb  7 23:38:35 2003  -0.381460 seconds

2003年02月08日 土曜日

PCを買いに行った話

新入社員用のPCを大須の某店に買いに行った。Celeron 2G, HDD40G, CD-RW, USB2.0, WinXPHome 込み完成品で\59,800 の PCをハケーン。

しかも「今なら追加256Mメモリを200円でサービス」と「液晶を同時に買うなら29,800円」のチラシもハケーン。ところがいざ買おうとしたら、この2個のサービスは同時には行えないと言い出した。ギリギリの価格設定だから無理との話。おかしいじゃないか、利幅設定は店の都合であって消費者には関係ない。ならそんなチラシを張るなよ。

結局その店では買わずに、同じショップの別店舗に行って(当然同じキャンペーンをしている)そこで買った。本体\59,800、256追加メモリ\200、IODATA社液晶(15"1024x768) \29,800 で結構いい買い物をした。最初の店は接客をバイト君に任せてて、買う気で来ている客を追い返していた。商売が下手。

サルサ

土曜日はエルココのサルサナイトがあるので今日もまた独りで出かけた。最近エルココに付き合ってくれる人がいない〜。レッスンは回転系の大特集(笑)。

なんとEMIKO先生から「レディアンのダンスレッスン、上級にチャレンジしてみない?」と言われた。よっしゃぁ!!ガッツポーズだ。 カナーリうれしい。

SH-Linux

ultracat君(CAT68701+ハードディスク付き、アクリル箱入り)でphp3とphp4の _sh3.deb パッケージをビルドした。SH3でセルフビルドしているのでお世辞にも早いとはいえない。php3のビルドには数時間必要だ。ビルドは成功したがphp3は i18n が無効になってたので(がーん)ビルド後に気が付いたがやり直す気が起きないのでまた今度にする。php4のビルドのほうは、pike7がまだshでビルドできないのでcaudium無しにした。なんだかんだ言って俺Buildだし、caudiumは使わないから無くてよいのだ。

2003年02月09日 日曜日晴天

CAT709

少しずつドキュメントの整備中。 IRQ一覧

2003年02月10日 月曜日

なんか書いとこう

月曜日はえ〜と連休の合間だったな。午後1時〜U原氏と打ち合わせがあった。5.10日になので銀行まわり。


2003年02月11日 火曜日(建国記念日)

祝日

建国記念日で祝日。午後7時くらいから会社に出る。本当は昨日送付のはずだった仕様書書き上げていないのであわてて書く(んでもうAM4時だったりする。ぐはぁ)

php4

GETメソッドで送った日本語が文字化けする。mbstring.internalencording=EUC-JP, mbstring.http_input=SJIS, mbstring.http_output=SJIS となっているのでブラウザ君はSJISで入出力する。GETもSJISで送られてくるが、mbstring.http_input で自動的にEUCにしてくれることを期待したがそのとおりに動かない。

調べたら configure 時に --enable-mbstr-enc-trans が必要だったのでphp4を再ビルドして debパッケージを作り直した。

apt-get upgrade したら元に戻っちゃうので注意が必要だ。

PDAとか手帳とか

東急ハンズでシステム手帳を買った(2月に手帳を??なんてツッコミは無しね。笑)。システム手帳を買うのは3回目だったりする(これも苦笑)

実はPalm m505も使ってる。アドレス帳はやっぱり電子媒体の方が管理が楽だ。顧客DBを打ち出すのはナンセンスだし携帯・エクセル・mysql等行き来するしね。テキストドキュメントはDOC形式にしてm505に入れて持ち歩いている。ただ、打ち合わせメモやTODO,スケジュール管理はやっぱり紙手帳じゃないとダメなんで普通の手帳を使っていた。図や絵を描くしね。そんなわけで海老原的結論としてシステム手帳にm505をはさむのがベストという結論に達して、m505がはさめるようなシステム手帳を探してきた。システム手帳とm505を組み合わせれば、リーフレットとして挟み込むタイプの電卓や辞書リーフレット、世界時計早見表や時刻表を買ってこなくて済む。紙のアドレス帳は結構ページを使ってしまうのでm505ですっきりする。m505はアドレス帳、電卓、英和/和英/漢字辞書、主要駅の時刻表、テキストファイル持ち歩き道具として使う。スケジュールや打ち合わせメモは紙がベストだ。結局このスタイルが俺的には最終形と思う。やっぱりPDAには得意な面と不得意な面があって、PDAだけで全部やろうとするのは海老原には難しいな。意外とアナログ人間だし。

ちょびっと良い手帳がほしかったのでハンズで\14,000。今度は永く使おう。

時計

アナログついでに。やっぱり時計は機械時計が一番だ。俺のLink君(当然自動巻き)は一ヶ月で5分くらい進むけど、そんな君が大好きだ。


2003年02月12日 水曜日

CAT709

残件の確認 cardmgr で CF を認識させた際に /dev/hda だけではなく /dev/hdc も認識してしまう不具合(害は無い)。CFからのブートに対応させる。liloを使う方法もありだし、FATパーテーションからzImageを探して直接読もうかとも考え中。

サルサ

レディアンで初・中・上級と3時間レッスン。そのあとXAXで1時間初級レッスン。

XAX

1時間ほどトレーニング。チェストプレスとワンハンドタワーで上腕二等筋を鍛える。チェストプレスは基本的に胸のトレーニングだけど、持ち上げた後腕を絞る運動を加えると腕のトレーニングにも有効らしい。

それと、最近痩せすぎ。やばい。一ヶ月で体重-2Kg。


2003年02月13日 木曜日

清掃

緊急大掃除(新入社員用の場所確保のため)

CAT709

引き続き資料整備


2003年02月14日 ファイルサーバダウン!

ext3の馬鹿ぁ

何気に仕事してたら、会社の基幹サーバ(sambaでWindows共有フォルダを置いたり、顧客管理・受発注データベースが動いていたり、CVSサーバが動いていたり)最重要マシンからファイルが脱落していることに気がついた。あれ?おかしいなとsyslogを見てみると

Feb 13 04:08:57 exus kernel: EXT3-fs warning (device md(9,0)): empty_dir: bad directory (dir #7735986) - no `.' or `..'
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820191
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820192
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820193
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820194
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820195
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820196
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820197
Feb 13 04:09:00 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 820198
略
Feb 13 04:16:58 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 823278
Feb 13 04:16:58 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 823497
Feb 13 04:16:58 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 823498
Feb 13 04:16:58 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 823499
Feb 13 04:16:58 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 823500
Feb 13 04:16:58 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 823501
Feb 13 04:16:58 exus kernel: EXT3-fs error (device md(9,0)): ext3_free_blocks: bit already cleared for block 823502
がぁん。8分間にもわたって1178個のエラーが出ている。

バックアップとってあるので最悪の事態は免れているが、、 あうーext3のばかぁ。バックアップからのリストアはめんどいのだよ。やっぱext2に戻すか。念のためmkfsしなおしたほうがよさそうだしな。今日一日はこれで終わってしまう予感。

最重要基幹サーバなのでUPSで保護したりraidを導入したりかなり保護をかけてたつもりなんだけどext3にやられるとは。。

バックアップ手段再考あれこれ

きょうびなんらかの圧縮を考慮しないとバックアップできない。現行手段は afio で DVD-RAM に
シーケンシャルライトでなかなかgoodなんだが、他の方法も考えてみることにする。

KNOPPIX参戦の前にcloopの実験してみようと思ふ。

CLOOP:圧縮ループバックファイルシステム。何らかのファイルシステムのイメージを create_compressed_fs で圧縮して、それをloopbackマウントできるようにするユーティリティーである。

準備
# apt-get install cloop-utils
create_compressed_fs はメモリを馬鹿みたいに使うので一時的にスワップ領域を確保する
# dd if=/dev/zero of=/swapfile.bin bs=1M count=1024
# mkswap /swapfile.bin
# swapon /swapfile.bin
いったんtmp.isoを作る(別にiso9660じゃ無くてもいいんだけど)
# mkisofs -R -l -V "ボリューム名" -hide-rr-moved -v ソースディレクトリ/ > /tmp/tmp1.iso
次に圧縮する
# create_compressed_fs /tmp/tmp1.iso 65536 > /tmp/tmp1.ziso
そしたらば、この .zisoをどこかのディレクトリに移動してもう一度 mkisofs で iso9660イメージを作ってから焼けばよい。
# cd /tmp
# mkdir source-dir
# mv tmp1.ziso source-dir
# mkisofs -R -o tmp2.iso source-dir/
作成には手間かかるが、標準カーネルでマウントできるのが強み
カーネルの再コンパイル&再起動は不要だが loop.o を
make して insmod する必要があるっぽい感じ。
元ディレクトリ使用量 1,181,116,006
tmp1.iso             1,062,207,488
tmp1.ziso              839,360,954(圧縮率70%)
tmp2.iso               839,450,624(トータル圧縮率71%)

cramfs これもreadonlyな圧縮ファイルシステムのひとつ。

準備
# apt-get install mkcramfs
イメージを作る
# mkcramfs pub/ /tmp/tmp3.cramfs
warning: guestimate of required size (upper bound) is 842MB, but maximum image size is 272MB.  We might die prematurely
.

がーん。そういえばcramfsは、ファイルサイズ16MB未満・ファイルシステムの最大サイズは256MB強という制限があった。

結局

めんどっちくなって忙しくて、DVD-Rに分割して丸々焼いた。

復旧

どのファイルに傷があるかわからんので、フルリストアした。ついでに /home は jfs で行くことにした。kernel-2.4.20 , jfs-utils は woodyのは古かったので最新を ./configure --prefix=/usr; make ; make install した。


2003年02月15日 土曜日

イーオン

カウンセリングウィークとかいうやつで休み。

サルサ

エルココに行った。今日はアバナで「サルサ・アンド・アラビアンナイト(ベリーダンス)」ってのがあったらしく人がめちゃ少なかった。記憶にあるなかで最低人数だった(男は数人。女は10人くらいしかいなかったのではないかな?)

情報によるとマコンドはかなり混んでたみたいで、今夜は名古屋のサルサ人はアバナとマコンドに割れちゃったみたいだね。それにMIHO組みの人たちは大阪か金沢?に遠征に行ってるらしい。

やっぱり冬はサルサ人口少ないなぁ。全員の顔みただろーな。笑。夏になるとめちゃくちゃ人が増えるんだよね。一応11時くらいまでいて引き上げました。


2003年02月16日 日曜日

CAT709

CAT709だけじゃなくてCAT68701でも同じなんだが、SRAMをファイルシステムとしてではなくバッテリーバックアップされた512Kバイトのメモリ空間としてプログラムから直接使う方法について載せておく。

近代UNIXの面白い機能で「ファイルをmallocしてメモリに貼り付ける」というmmap()システムコールがある。(ただしファイルサイズは固定)ファイルをmmap()すれば、戻りポインタのメモリ上にファイルが張り付いているように見えます。ファイルの代わりにデバイス /dev/sram を mmap() すれば、戻りポインタにSRAMが張り付いているように見えます。

/*
  SRAM mmap test program
  2002-09-11 Linux-Koubou y.ebihara
*/
#define SRAMSIZE (512*1024)   /* SRAM 512Kbyte */
#include <stdio.h>
#include <fcntl.h>
#include <sys/mman.h>
int main(){
  int fd;
  unsigned char *sram;
  printf("this is sram test program No.1  2002-09-11 Y.Ebihara\n");
  /* SRAMデバイスドライバをopenする*/
  /* /dev/mtd1 を使えばフラッシュメモリでも同様に使用できる */
  fd=open("/dev/sram",O_RDWR);
  if(fd<=0){
    perror("");
    exit(1);
  }
  /* fd を使って mmapする(ポインタが戻る)*/
  sram=mmap(0,SRAMSIZE,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
  if(sram<0){
    perror("");
    exit(1);
  }
  printf("SRAM mmaped at %p\n",sram);
  /* そのポインタを使ってアクセスする */
  sram[0]=0x12;
  sram[1]=0x34;
  sram[2]=0x56;
  sram[3]=0x78;
  /* SRAMと同期をとる (ハードへの書き込み)*/
  msync(sram,SRAMSIZE,MS_SYNC);
  /* mmapを閉じる*/
  munmap(sram,SRAMSIZE);
  /* デバイスを閉じる */
  close(fd);
}
以下実行結果
# ./sram1
this is sram test program No.1  2002-09-11 Y.Ebihara
SRAM mmaped at 0x2956a000  <−−−このアドレスはSRAMを張り付けた仮想メモリ空間
SRAMが書き換わったか確認する(16進ダンプ)
# hex /dev/sram |more
0x00000000: 12 34 56 78 2c 00 00 00 - 5f 56 f1 e0 01 00 00 00 .4Vx,..._V騾....
            ^^^^^^^^^^^書き換わっている

関数リファレンスはこちら
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/mmap.2.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/msync.2.html


2003年02月17日 月曜日

仕事

debian+php4+mysql な imode の仕事してて徹夜した(日曜の夜から)

XAX

さすがにいけない(バテタ)


2003年02月18日 火曜日

CAT709

CAT709の質量を測ってみる。

33gですね。

(ハカリでは質量は計れない、ハカリで計れるのは重量だけど)


2003年02月19日 水曜日

CAT709

某所で「クロックを下げて低消費電力モードがあればうれしい」との話があったのでクロックを下げる実験を行った。んなもん、FRQCRレジスタちょいちょいっといじればOKだろう、って考えてたもんで、軽い気持ちでファーム改造開始。一箇所いじるだけじゃんね。だがうごかない。動かない。あれぇ?

なななななんと!!SH3ハードウェアマニュアル10.3.4章に『クロック比I:B=1:1の時はSDRAMにアクセスしないでください』の1行が。あの分厚いマニュアルの中にたった1行。ハケーン困難でした。でも書いてあるだけマシかぁ。世の中には書いてない仕様のほうが多いもんね。

てなわけでクロックダウンは意外と難しかったのだ。消費電力を下げる方向は別な手段を講じねばならない。CPUを100%ぶん回さないようにリミッターモドキを入れれば消費電力は下がる。Linux実行時もアイドル時は200mAだ。積極的にCPUをSLEEPさせているからね。さて、幸いカーネル空間スレッドは非プリエンティブだから、カーネル空間スレッド1つを起こして、このプロセスは常に TASK_RUNNNING 状態 にする。名古屋弁でいえば current->state=0 だがね。そんでこのプロセスで積極的にアセンブラのSLEEP命令を実行させちまえばよいだろう。この手法ならばクロックダウンと違って割込み応答性能を犠牲にしないので結果としてはよいと思う。うまくやれば性能・消費電力比を可変できるし。

サルサ

水曜日はサルサの日。今日もレディアンで初・中・上級とレッスン。そのあとライムストーンでcalizaの活動をした。今日はSonrisaとIschuteが来てた。

クリスマスの時の写真をもらったのでウプしとく。

男は左からAchi,俺(Gamba),Ischute,Juky,手前の花を持っている女性はKikoさんとJanetさん。

サーバ

あー!!やべぇ。基幹サーバに目を向けたらRAIDの片側のHDDのアクセスランプが点灯していないじゃないの。基幹サーバ君、きみはつい2,3日前に復旧したばかりじゃないのさ。今度はHDDが不良かい。

ebihara@exus:~$ cat /proc/mdstat
Personalities : [raid1]
read_ahead 1024 sectors
md0 : active raid1 hde1[0](F) hdg1[1]
      80043136 blocks [2/1] [_U]
unused devices: <none>
ebihara@exus:~$ cat /var/log/kern.log
Feb 19 04:21:07 exus kernel: hde: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Feb 19 04:21:07 exus kernel: hde: dma_intr: error=0x40 { UncorrectableError }, LBAsect=156334, sector=156264
Feb 19 04:21:07 exus kernel: end_request: I/O error, dev 21:01 (hde), sector 156264
Feb 19 04:21:07 exus kernel: raid1: Disk failure on hde1, disabling device.
Feb 19 04:21:07 exus kernel: ^IOperation continuing on 1 devices
Feb 19 04:21:07 exus kernel: raid1: hde1: rescheduling block 156264
Feb 19 04:21:07 exus kernel: md: updating md0 RAID superblock on device
Feb 19 04:21:07 exus kernel: md: (skipping faulty hde1 )
Feb 19 04:21:07 exus kernel: md: hdg1 [events: 0000001c]<6>(write) hdg1's sb offset: 80043136
Feb 19 04:21:07 exus kernel: raid1: hdg1: redirecting sector 156264 to another mirror
Feb 19 04:21:07 exus kernel: md: recovery thread got woken up ...
Feb 19 04:21:07 exus kernel: md0: no spare disk to reconstruct array! -- continuing in degraded mode
Feb 19 04:21:07 exus kernel: md: recovery thread finished ...
hdeが死んでるのね。こういうときRAIDでよかったって思うよ。助かってる。raidhotdel して交換して raidhotadd すれば直ると思う。 明日HDD買ってこなきゃ。

2003年02月20日

CAT709

消費電力をもう一度正確に測ってみる。一ヶ月でソフトもだいぶかわってきたし。

ブートROM内でぐるぐる回り550mA (1.81W)
Linux起動時650mA (2.14W)
Linux起動後、静かにしている時260mA (0.85W)
Linux上で、プロセス全力RUN670mA (2.21W)

すべて3.3V電源ラインで計測した。

PARTNER-J

JTAGデバッカ「PARTNER-J」に関して誤解があったので備忘録として書いておく。PARTNER-Jの14ピンのJTAG接続ケーブルの7番ピンは「RESET#」信号と書かれており、マニュアルによるとターゲットボードのRESET#線に繋ぐように図示されている。だから俺はこの線はオープンコレクタのRESET#出力だと信じて疑わなかった。普通、この手のICEってデバック画面でリセットアイコンをクリックしたらターゲットボードにリセットがかかるし。

しかし実際にはCAT709に対して基板ではリセットがかからないのだ。それでもマニュアルリセットしてれば動くし、デバック事情なんであんまり気にしてなかったんだけども、不審に思い出したので調査を開始した。デバッカのRESET#信号線にプルアップ抵抗をつけてLに落ちるかオシロで観察してみた。ところがデバッカ画面からRESET指示を出してもLパルスが出ない。おかしいじゃないか。

マニュアルを調べたけど詳しい記載が無いので京都マイクロコンピュータに電話して聞いてみた。すると、この線は入力だという。入力だと!?え?じゃぁターゲット基板へのRESET出力は?と聞くと、34pinのケーブルならRESET出力があるが、14pinのケーブルには無いのでRESETボタンを押すしかない。という回答。えー!PARTNER-Jは14/34ケーブルがあるが本体は共通でケーブルだけ違うんでしょう。どっかに信号出てないの?と食い下がったところ、裏ワザだけど本体の24pinがオープンコレクタのRESET#だよと教えてもらった。(^-^)

写真のようにRESET#プローブをつけてCAT709に接続。よしよし。これでOK。デバッカ画面からRESETがかかるようになったぞ。

サーバ

RAIDのおかげでHDD交換はデータの欠損無しで移行できた。

お仕事

u氏との開発プロジェクトが最後のひと山なので今日はここで3人で机寄せ合って徹夜モード。u氏は最後のバグ取り。岩崎はMTDと格闘。俺はCATのkernel追いかけ。毎回、納期前はまるで高校の学園祭の前日のようでハイになれる。それがこの仕事の醍醐味だし、この仕事をを続けている理由とも言える。(ということにしておく)


2003年02月21日

CAT709

カーネルソースをきれいに整形した。特に arch/sh/kernel/io_cat709.c と drivers/pcmcia/sh3_ss.c を書き換えて、複数のCFソケットを同時に使えるようにした。

今までは片方のCFしか使えていなかったんだけども両方同時に使えるようになったぞと。

CFはioport 0x000〜0x3ff の間限定でマッピングすることにすることにした。

#define MAPSIZE 0x400
static unsigned long cat709_port_offset[MAPSIZE];
int cat709_port_map(int start, int stop,  unsigned long physaddr){
  int i;
  if(start > MAPSIZE || stop > MAPSIZE){
    printk("<1>cat709_port_map: Bug! start(0x%03x) or stop(0x%03x) > MAPSIZE\n",start,stop);
    return -1;
  }
  printk("<1>cat709_port_map(start(0x%03x),stop(0x%03x),offset(0x%p))\n",start,stop,physaddr);
  for(i=start; i<=stop; i++)
    cat709_port_offset[i]=physaddr;
  return 0;
}
EXPORT_SYMBOL(cat709_port_map);
unsigned long cat709_isa_port2addr(unsigned long offset)
{
  if( offset < MAPSIZE )
    if(cat709_port_offset[offset] > 0)
      return cat709_port_offset[offset] + offset;

あっはははは。自分でも驚いたけどこんな単純な仕掛けが一番速度的にも優位だ。if文を羅列せずに全部オフセット配列とした。メモリ1キロバイトくらい食うけどそんなもんけちらずにスピード優先とした。irqも同じ仕掛けで、動的にdemux()するようにした。この辺はCAT68701でハマった経験を生かしてあらかじめ対策済み。

カードマネージャが 0x000〜0x3ffしか使わないようにするために、/etc/pcmcia/config.opts ファイルを

include port 0x000-0x2ff, port 0x320-0x3ff
としておけば、この範囲しか使わなくなるのでオーケーだ。

2003年02月22日

サルサ

久々にアバナに行った。結局今日もつきあってくれるヤツいなかったんで独りで行った。今日は「エルメス先生キューバ行ってらっしゃいパーティー」だった。アバナは場所がちっとわかりにくい。久しぶりに行ったんで迷ってしまった(A^^;;。結構混んでた。最近エルココは人がかなり少ないんだけどもアバナは混んでたよぉ。はじめてみる顔も結構あって楽しかった。エルココだと女性も常連ぽくて同じ人ばかりなんだけど、今日はいろいろな人と踊れて楽しかったぞと。やっぱサルサの醍醐味ってコレ!常連で友達になった子と踊るのもそりゃ楽しいんだけど、初めて見る顔でも目が合ってたら誘って踊れるのがサルサの楽しいところだよね。(^^。やっぱたまには違う店に行くのもいいなぁ。

俺はテンション強めの踊りがすきだから女性もテンション強い人が好きだったんだけども、テンションの弱い人はそれに合わせないといかんね。当たり前だけど。それから、今日はじめてサルサやるっていう子がいたのでエンチュフラ教えて踊ったんだけども、それって周りから「教える君」に見えちゃうのかな。エンチュフラと右回りだけでもできれば一曲踊れるじゃんか、そう思ったんだけども、難しいところだよね。クラブでは謙虚に、でも積極的にだよね。


携帯で撮った写真


2003年02月23日

日曜日

にもかかわらず大阪に出張だった。納品に行ってきた。納品といってもブツはサーバのソフトウェアなのでCDROM一枚と仕様書ファイル一冊。日曜日しかサーバのメンテナンスできないから。

驚いたのは客先で営業の方が仕事してた。日曜日なのにご苦労様です。


2003年02月24日

代休

今日は昨日の代休で休ませてもらう予定だったけれど結局仕事に来た。「俺今日やすみだから。ほほほーん」てな具合で岩崎の足を引っ張ってしまった。

XAX

久しぶりの月曜日エグザス。ボディーパンプが45分バージョンに短縮されてて物足りなかった。BP45は、アップ→スクワット→チェストプレス→背筋→ランジ→腹筋→ダウン。うーん俺の好きな"腕の裏側"とアームカールが無いのだ。残念だ。

CAT709

Linuxカーネルのpcmciaサービスの構造体を改めてまとめなおした(一部抜粋)ヘッダーをプリントアウトしてはさみで切ってノートにスクラップブックのように貼ると理解しやすい。手書きで矢印もコメントも入れられるし。

このノートはなかなかよくできていて、パンチ穴が最初からあいててしかもミシン目も入ってて頁単位に切り取ることができるのだ。切り取ったらA〜Z順にINDEXつけてファイリングできる。PCMCIAはPの頁。アナログ人間まんせー


2003年02月25日

CAT709

新たなる発見をしてしまった。CFにはIOIS16*という出力ピンがあるのだが、世のCF君達は自分に対するチップセレクト入力がネゲート状態でも常にIOIS16*を出力してる事を発見した。つまり、CFにアクセスに行っていない時もIOIS16がパタパタ動いてしまう(CFによってはL固定出っ放しもある)。従って複数のCFソケットをパラにつなぐときはチップセレクト(CE1 nor CE2)されていないときはCAT709にIOIS16を返さないようにマスクしなければならない。

オンボードのCFと、外付けCF一個の時のみはALTERAを書き換えることで対応できるのでさっそくALTERAを書き換える。外付けCFソケットがひとつだけの時はCAT709のIOIS16入力段でマスクをかけているので上記図の赤色改造は不要。しかし外付けにCFソケットを2個以上繋ぐ時はCFは常にIOIS16を出している事に留意して、上記図のようにマスクを入れるように注意すること。

イーオン

今日のポイントは『I'd rather 動詞の原型』『I'd prefer to 動詞 もしくは I'd prefer 動詞ing
Would you rather take a cooking class or swiming class?
I'd prefer to take a swiming class.

『プリファトゥ』はよく使うので一まとめの言葉として覚えてしまっているが、rather+動 ってのは初めて聞いた。いや、この辺の文法って高校時代にならったのかもしれないが勉強した覚えが一切無いし、普段は文法無視でほんとうに適当にしゃべってるから全然上達しないしTOEICもぼろぼろなんだなぁ。と痛感した。


2003年02月26日

CAT709

マニュアル類の整備をした。

仕事

来月の?CQ出版Interface誌の原稿をチェックした。月末だから銀行など経理周りの仕事が多く伝票のチェックなどをした。

サルサ

レディアンで初・中・上級レッスン。中級の時にEMIKO先生がワザ何をやるのか忘れてしまって時間が中断してしまったお詫びということで中級の人たちみんな上級まで習っていって〜といってた。だもんで上級はヒトが多くて楽しかったぞと。


2003年02月27日

休み

今日はやむを得ぬ事務的理由により仕事を休みました。

サルサ

アバナのGUNJI先制のLAのレッスンを1時間受けた。GUNJI先生はクラブでよく踊って見えて、優しそうな人柄ですがいざレッスンになると結構厳しかった。クラブでは人がいいのですがレッスン中は厳しい。さすが、プロとはこうありたいね。自分の仕事に自信を持ってらっしゃるのと同時に、レッスン生(つまり顧客)のためを考えている。「あなたうまいねぇ」ではこちらのプラスには何にもならないのだ。


2003年02月28日

仕事

月末です。2月は短いですね。東京から来ていただいた方と上小田井で打ち合わせをした。社内では伝票や帳簿整理などの事務的な仕事ばかりでした。開発業務は静かな土日にやるしかないね。現在抱えている残件の整理と期日の確認、あぁ、WDTドライバやらなきゃ。

サルサ

今日は行かないつもりだったのだけども友達の子からマコンドに連れてけとメールが入ったのでマコンドに連れていった(言い訳)。マコンドのpepe&ホアキン達の目指しているダンスは「相手に気持ちよく踊ってもらうダンス」。だから激しいワザとかはやらない。とにかく相手に気を使う。相手を躍らせるダンス。オープンブレイクやクロスボディーリード、ライトターンといった本当に基礎的なことをしっかりとしっかりと指導する先生だ。数回レッスンを受けた事あるけど理論先行ではあるものの流石に上手いのだから説得力がある。連れの子はpepeさんにムーブメントの悪い癖を指摘されて特訓されてた(笑)よかったじゃん。プライベートレッスンまともに受けたらレッスン料すごいかかるよ。

携帯で撮った写真。マコンドはクラブとしてはめづらしく1面が全て開放的な窓になっておりビルの高層部にあって見晴らしがよいクラブだ。客層の中心は初心者〜中級者。コングレスのようにアクロバティックに踊る人はいないというか、ご法度に近いような店ですね。ワザに走るんじゃなく「二人きり」で一曲の5分を楽しもうという方向性の店です。マコンドはLAスタイルの人が大半で、自分もマコンドではLAっぽい(笑)リードするようにしています。ライトターンの予備動作、CBA、フォームといったリーディングが違うと思います。マコンドではあまり自分は踊らずに女の子を躍らせるリードに徹します。一曲のうち自分のワザが入るのは1回か2回です。そういうリードをしていると女の子から踊ってくださいと声掛けられます。