gccのインラインアセンブラ

gccのインラインアセンブラをまた使う必要があったのだが、忘れてしまっているので、この日記をいろいろ調べる。また同じことが起きたときのために、gccのインラインアセンブラの使い方のページを作る。割込みハンドラの実験の下準備としてVR4131ボードのGPIOを動かしてみる。今日もER-VIIを見る。楽しく見ているのだが、このシリーズは暗い話が多いような気がする。

USBチップのドライバー

世間的には今日が仕事納め?うちはどうしよう。とりあえずゆるく仕事をしよう。USB Chips情報のページを知る。ここ経由でさらにUSB Ethernet adapterのページに至る。ADMtekのADM8511の {Net,Free,Open}BSDでのドライバーは if_auiだそうだ。Linuxマシンだと/lib/modules/2.4.7-10/modules.usbmapに、pegasus というのが登録されている。

ZAKZAK 2002/12/27イラク、「日本は英米についで敵対的」記事を読むと 日本がイラクにひどくなめられてる感じがする。民主党の首藤議員は わざわざイラクになめさせに行ったのか。

以前、存在を教えてもらっていたSL811HSのLinux用ドライバーの場所を確認。お正月のオモチャか。ドライバーを moduleで試せるように、L-Card+のカーネルを作り直す。

421日連続運転

寒い。ふと、会社でレンタルしているサーバで uptimeしてみたら、5:05PM up 421 days, 20:08, 1 user, load averages: 0.00, 0.00, 0.00と出た。 421日連続運転かぁ、凄いじゃん。自己最高記録かも。車のワイヤレスキーを一度分解して組み立てた。今日はちゃんとLOCKできた。購入は延びた?夜、robocode。 spinbot用の予測器を作るのに、2×2の逆行列の公式がわからず、googleで検索してしまう。ということで、SpinBotにもバリバリ弾があたるようになった。

プログラミング言語Java  3,800円

robocodeで過ごす

robocodeで過ごす。機能を1つづつ追加。Walls(robocode付属のサンプルrobotの1つ。フィールドの壁つだいに走り回る単純なやつだが、結構強い)に対しては、完璧に位置を予測し命中できるようになった。しかし回避機能がボロでwallの弾も半数以上あたってしまう。次は SpinBotの位置を予測できるようにしよう。敵弾回避はその次?

秋月電子のホームページが新しくなり、メールマガジンも始まるそうだ、頻繁に更新してもらえるとうれしいなぁ。

ところで、前のサイトでもそうだったけど、秋月電子のホームページ更新日は月と日だけで年がない。今までは、長く更新されないページも多く前後関係が全くわからなくなっていた。今度はそうならないことを祈る。

tcl/tkは楽しい

今日も良い天気。空が青い。朝から tcl/tkの imageコマンドを試す。Tcl/tkは楽しい。jpegファイルを見るにはimgをつかえばいいのかな?Tk-8.3に対応しているか、ちょっと心配。自分で作ってもいいんだけどね。

帰宅後 imgをインストール。ちゃんと tk-8.3にも対応していて、スムーズにインストールできた。あと tcllibなどもインストールし、trevaの画像をhttp経由で更新するプログラムの tcl/tk版完成。わずか19行。 tcl/tkはいいねぇ。

画像監視プログラム:watch.tcl


package require Imgpackage 
require http 2.4
package require base64
image create photo img1 label .img -image img1 -bd 2
button .exit -text exit -command exit
pack .img .exit -fill x
set t 0
proc reload {} {
global tset token [::http::geturl http://192.168.0.206/cgi-bin/trejpg.cgi]
set data [base64::encode [::http::data $token]]
::http::cleanup $token
img1 put $data -format jpeg
.exit configure -text [expr $t?{exit -*-}:{exit -w-}]
set t [expr !$t]after 100 reload}
reload 

watch.tclの画面動作中の画面。RedHat7.2 on vmwareのfvwm2上で、 NoTitleとNoHandleを指定している。この画面が更新しつづけられるわけだが、実際の動きと比べると1秒ぐらい遅れている。これは、cgiプログラムが呼び出されてから trevaの画像を読み込んでいるので仕方ない。現状では画像読み込みにCPUパワーを消費するので、常時読み込みを行う気にはならない。将来的には、FPGA等で 常時読み込めるようにしたい。

しかし、tcl/tkでこれだけ簡単に 画像やhttpを扱えると、いろいろ応用が効きそうだ。


postscriptのコードがおかしい件の調査

エンジニアリングLinux応用技法  2,200円

pdvi2psの出力するpostscriptのコードがおかしい件の調査。読み込む Postscriptのprologueファイルが違っていることが判明。texmf.cnfを修正。 ghostscriptで表示できるようになった。Linux側からもMFC-6800Jに印刷できると便利だなといろいろ調べてみる。 printconf-guiの設定でMFC-9600などのドライバーがあるので試してみるが印刷できない。Windows側で作成したファイルを smbclinetのprintコマンドで送ると印刷できる。 どうも、ドライバーが合っていないようだ。MFC-6800Jの印刷制御コードの資料を探すと、BROTHER LASER PRINTER Technical Reference guideを発見。 そのものずばりの資料だ。Windowsのドライバーの出力と見比べると、出力されているのはAPPENDIX C HBP MODE COMMANDSに書いてあるコマンドのようだ。これだけ資料があれば、充分 ghostscriptのドライバーを書けてしまう..どうしよう。ブラザーのQ&AのページDOS/Linux/Unix 準備中などがあるのを見ると、そのうちブラザーがLinux用のドライバーも提供しそうな気もするし…

TECH I「エンジニアリングLinux応用技法」届く。インターフェース2月号に書いた私の記事も再録されていますので、良かったら見てください。

ユニバーサル基板の図

秋月電子 AE-3G
ユニバーサル基板

H8/300HにuCLinuxを移植した人がいることを知る。うーむ、すごいですね。でも RAM 4MB, ROM 1M使っているみたいだから、AKI/H8使うにしてもROM/RAMの増設が必要。わたしもいつか挑戦してみたいものだと思う。よく読むと、gdbのシミュレータ上で動かしたという話なんですね。それにしても凄いとは思う。注目のA4両面レーザープリンタ、ブラザーのHL-1650/1670Nが Postscript3互換だということも知る。あまり宣伝されていなかったので、気が付かなかったが、仕様を見ると コマンド体系のところにBR-Script3 (PostScript3 互換) PCL(欧文)とある。でも、今時 Postscriptのメリットって何だろう?Linux/Unix系OSから使う時、ghostscriptを組み込まなくて良い、メーカ製ドライバーがなくても使用可能というあたり?対応プロトコルTCP/IPというのは、lpqでプリントアウトできるということかな?だったら嬉しいな。

夜、jwcadでユニバーサル基板の絵を書き、部品配置を検討。うーむ、部品が全部、載るかどうか かなり厳しい。

LEGO 4×4 Off Roader完成

TCP/IP LEAN

アマゾンよりTCP/IP LEAN: Web Server for Embedded systems 届く。CMP BOOKSの以前から気になっていた本。タイトルは 『痩せた(?)TCP/IP』。組み込みシステムにTCP/IPスタックとhttpサーバを実装するという話の本。面白そう。CDROM付き。アマゾンを経由すると、洋書も1Clickで送料無しで買えてしまう。便利な世の中になりましたねぇ〜

車っぽい
完成!
ここはどこ?
でかいのよ

LEGO 4×4 Off Roader完成。かなり時間がかかりました。(数時間?)写真で手を広げている人形は、フォークリフトの運転手。テクニックチームのメンバー?いろんなポーズを取れるのでお気に入り。2,3日前からKCN(ケーブルTVインターネット)の速度が500kbpsぐらいしかでなくなった。それまでは 800〜900kbpsぐらいでていたのになんでだろう? 帯域制限がかかったのかなぁ。契約では 1Mbpsなのに。


TREVAの画像が見れるようになった

LPIペンギン
TREVAの画像

ほとんどだらけて過ごすが、夜かろうじてtrevaのプログラムをいじる。まず、trevaから読みだしたファイルをjpgに変換するプログラムを作る。libjpegを使えば簡単。これにヘッダを追加し、Micro httpdと一緒にL-Card+上で動かし、ブラウザ経由でtrevaの画像をみれるようになった。当初、jpegへの変換に時間がかかったが、浮動小数点演算を固定小数点演算に修正したら、問題ない程度に速くなった。次はw3camを参考に、動画(multipartで送るだけ)を試してみよう。

CGI作成に疲れる

ちょっとCGIのページを作ろうとしてなかなかできなくて疲れる。やることはわかってしまっているので、あとは面倒なだけでなかなか進まない。CGIって、大体すぐ4ページ構成ぐらいになるのだけど、ただのHTMLでも、4ページ作るの疲れるもんなぁ、CGI作るのに疲れるのは当然かも。もっと簡単に作れるはず…と常に考えているから疲れるのかも。使いまわしの効くライブラリーとか作りながらやれば いいのかも知れない とか思う。

Rubyの256倍本

昼休み散歩ついでに日教社(模型店)までタミヤの2001年版カタログを買いに行くが、入荷するのは来月だそうだ。帰りにDos/V Power Report 3月号とRubyを256倍使うための本 極道編 購入。RubyUnitで eXtreme Programmingを極めろだそうで、RubyのTesting FrameworkであるRubyUnitについての本だそうだ。とりあえずXPのサイトというものがあることを知った。Rubyは知らないのに256倍本だけ2冊も買ってしまったなぁ。夜、AVRのプログラムを書き、充放電器はほとんど完成した…と思いたい。 一応、本体だけで充放電ができるようになったはず。あとは、ゆっくりテストをしながら、資料を整理しよう。

AVRASMのバグ?

天気が良い。日も長くひところより暖かくなった気がする。夜、AVRのプログラム。スイッチ周りのプログラムが快調で、一気に完成するかと思いきやはまる (涙)。どうもAVRASM Ver1.3のロケーションカウンタ周りのバグらしい。ChaNさんのサンプルプログラムにコメントがあったので存在は知っていたが引っかかっていなかったので忘れていた。ロケーションカウンタの計算が面倒。明日にでも計算用のPerlのプログラムを作ろう。

デバッグ中

AVRのプログラムデバッグ中。性格がいいかげんなせいかなかなか思うように動かない。アセンブラプログラムだけどprintfデバッグみたいなことができるのが救い。ChanさんAVRプログラムライタ プログラム AVRSSは使いやすい。徐々に動くようになってきたが、ADコンバータとLCDディスプレイがまだ動かない。

左下のCtrlキー

仕事先で左下にCtrlキーがあるキーボードでemacsを使い苦しむ.わたしの環境では全てCtrlキーをAのキーの左に配置し直している.左下のCtrlキーも練習するとちゃんと使えるようになるのだろうか.小指の付け根で押せば良いとか聞いたことはあるが,emacsとか使っているとCtrlキーとShiftキーを続けて押すことが多く(例. beginning-of-buffer = C-[ <)対応できそうに思えない.ちゃんとブラインドタッチ(タッチタイプ?)でキーボードを打っている人で左下のキーボードのまま使っている人っているのだろうか?

setserialコマンド

Linuxでシリアルポートを使うプログラムを作るので、いろいろ調べるがどうもおかしい。/dev/ttyS3のirqの設定が間違っている。どこで設定するんだと、いろいろ探すとSerial-HOWTOに詳しく載っていて感激。 setserialコマンドでいろいろ出来るらしい。便利だな。

夕方,友人と焼肉屋へ行く。 飲みながらドラクエの話になり私はplaystation.comに予約したので今ごろ届いているはずだ、と話すと、急拠 私の家に行く事になる。ドラクエVIIは届いていたが、PS2だと、PlayStation用メモリーカードが無いと冒険の書が作れない、ということに気が付くのにしばらくかかり、あせる。自転車で近くのゲームショップへメモリーカード(1,280円)を買いに走りやっとプレイ開始。全体に昔の雰囲気が良く残っていて感心する。最初は戦闘は無く、さながらパズルゲームのよう。