トップ 最新 追記
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)

2006年10月03日

みついわさんSH7706LANボード

みついわさんのところのSH7706LANボードが発売になった。手伝うと表明して基板を1枚おかりしているのだけど結局みついわさんが2.6.12を動かしてしまったので何もできなかった。今からでも遅くないのでsh3/debianユーザランドの実験とかでお手伝いしようか。やるといった以上は何かアウトプットしないと申し訳ない。
この基板ですが、いちおウチはプロなのでプロの目から評価した改善案は(電源を入れずに見ただけのぱっと見ですが)
1. Vcc/GNDが細い線なのでやばそう。2層基板ならべたアースをとらないと。机上ではうごくだろうけど盤(バン)に入れたら怖い。電源ラインのインピーダンスも高そうだしインダクタンスも多そうだし。それをパスコンで誤魔化そうとすると下手すると発振する。んで割れる。イミュニティやるまえからやる気しない。
2. 4つのねじ穴が開いているがM3ナベねじの頭が部品と干渉しそう。
3. データバスが長い&拡張端子にデータ/アドレスバスが(3stateゲート無しで)出ている。これやっちゃうと常に長い距離のデータ/アドレスバスラインが動いてしまって、奇数倍高調波がダダ漏れになっちゃうんだよね。
4. コネクタが3方向に出ているのでハコに組み込みできない。無理にハコに入れても結局どこかへ設置する場面になってケーブルの取り回しで困る。
5. SDカード対応って明言したらヤバイのでは?(お約束)

耐ノイズ性やEMI対策などを行っていない分安いので、この基板が向いている方面=安価なので学校などで使う学習用ボードに最適と思います。実際に販売する製品を作るのであればいろいろ考慮した基板を書き直す必要があると思います。

回路図を良く見てみたらDIOが232レベルシフタの空きチャンネルに接続されているじゃん。

http://mes.sourceforge.jp/mes2/sh3/sh3sch.jpg
この当時冗談だと思ってんだけどまじで「手クロック」をしろってことかぁ。


2006年10月04日

SWEET

とうとうおいらにも会社ブログの順番が回ってきた。
http://d.hatena.ne.jp/siliconlinux/20061004
自分で言うのもなんだけどSWEET感動。超〜〜便利!これは一度つかったらやみつきです。だまされたと思って、SWEETから飛んでいって、ダウンロードして、coLinuxインストールして、SWEETインストールして、チュートリアルで遊んでみてください(すんません、チュートリアルはもう少し良くします)。
2006年10月10日、組み込みLinuxの歴史が変わります
決して大げさではなくて本当です。フリー版もあるので是非使ってください。みついわさんのSH7706LANボードにも即対応する予定です。三岩さんのSH7706LANボードも、SWEETでお手軽にアプリ開発が出来るようになります。

2006年10月10日

SWEET Version1.0デビュー

よかった。何とかSWEETをリリースできた。もうドタバタだった。結局打ち上げに行く時間がなくなってしまった。今週末かな。
LinuxのプログラムをWindowsで書くのも変な感じがするのだけど、慣れたらもう戻れないです。私が一番便利に思うのはF1ヘルプ。



やっぱ便利です(^-^) ctime() とか使い方忘れてしまうし、see alsoもリンクで飛べるし。
SWEETで出来ることはみんなemacsで出来るじゃーんという意見もあろうかと思うのですが、emacsでそういった環境を構築するのがたいへんだという方々もいらっしゃいます。デジタルディバイドならぬ、UNIXディバイドを埋める目的でSWEETを開発しました。
SWEETは体験版をやめて、フリー版に変更しました。300行制限以下であればSWEET Free版が使えます。次はVersion1.1です。

2006年10月12日

核実験

こういうジョークがあった。アメリカ国民は自ら銃をにぎり自衛する権利がある。誰から身を守るのか。騒がしい隣人ではない。合衆国憲法修正第2条が認めている権利とは、国民は合衆国政府から身を守る自衛権を認めているというのだ。従って"国家権力が"国民から銃を取り上げるという憲法修正は違法このうえない。もちろんこれは左派のジョークだが、力の無いものが力を手に入れようとするときには苦し紛れでも理屈を押し通す必要があろう。

ところで、今回の核実験で一番困ってるのは誰かと考えると、やっぱり中国なんだろう。中国にとって最悪のシナリオとは(ありえないが)米国による北制圧、金体制の崩壊。イラクのように体制崩壊後に無理やり親米政権を創設されたら国境を接している大国としていい状態ではないだろう。中国としては北朝鮮は現在の体勢のまま(利でも疫でもない状態で)維持してほしいのが本音なんだろう。朝鮮半島は53年以後も代理戦争のいけにえにされつづけているのだ。となると今回の有事の背後に中国はいない。中国が困ってうれしいのはだれか?ブッシュか?今回の有事の背後にはじつはブッシュの陰謀が隠されている。なんて考えるとスパイ小説の世界に引き込まれる。

スパイ小説ネタを押し通すと、ロシア陰謀説を仮説してみるのもありだ。実験にロシアが軍事協力をしていたならば。ロシアとしてもうるさいお隣さんには静かに暮らしてほしいところだ。そうなるとアメリカと利点が一致する。ブッシュからの要請でロシアの工作部隊が動き、北に言いよって実験の支援を行った。全ては茶番劇で現実の脅威は空虚のままだと(それでも得をする人間は数知れない)。

ネタはその程度にしておいて、現実のわが国をみると、依然として決定力を持っていない。だが国民感情としては「やっぱあの国やべーぜ」ということで全体が少し右に動いたと思う。仮想敵国を作るのは国民の意識を一方に向けるためにどの国の政権も行ってきた手法だが、はからずも与党にとってはうれしい材料になったかもしれない。


2006年10月13日

CAT760

SH7760のデータシートSSI(シリアルサウンドインターフェース)の章とphilipsのオーディオコーデックICのデータシートをつき合わせて読んでみると3本を接続するだけで音が鳴らせるんじゃないかと思ってみた。無性に実験したくなった。今日はエンジニアモード。


2006年10月17日

高信頼性ソフトウェア

http://www.nmiri.city.nagoya.jp/event/h18/event181024.htm
 高信頼性ソフトウェア 講演会
 ----組み込みで主導する日本のソフトウェア技術
 主催  名古屋市工業研究所
 
 製造物に対する安全についての社会の注目が集まっています。日本の組み込み
 ソフトウェアは、品質が高いことが業界では国際的に認められています。しか
 し、その検証方法を定式化していない場合、または保守、点検を始めとする作
 業標準が安全のため確立していない場合があります。製品については、ソフト
 ウェアの検証方法を体系的に構築することが求められています。TOPPERSプロ
 ジェクトでは、高信頼性ソフトウェアをめざした取り組みが行なわれておりま
 す。TOPPERSプロジェクトに参加している(株)エーアイコーポレーションは、
 取り扱いツールであるPoly Space Verifierを中心に、この最先端の分野で活躍
 されています。
 
 組み込みソフトウェアの高信頼性のために、IEC61508に基づく機能安全と、そ
 の自動車向けのガイドであるISO26262の取り組みがあります。機能安全の規定
 にもとづいたC言語のサブセット定義として、MISRA-Cがあります。このMISRA-C
 は、日本からの意見を中心に大幅に2004年に改訂し、自動車技術会が翻訳を発
 行し、10月には日本規格協会より解説書を発行する予定です。さらに、ISO/IEC
 15504に基づいたAutomotive SPICEモデルによる現場の作業診断に対する取り組
 みを行っており、これらについてご報告いたします。
 
 日 時: 平成18年10月24日(火曜) 13:30 —16:45
 場 所: 名古屋市工業研究所 ホール
参加してみる。↓関連書籍
組込み開発者におくるMISRA-C 2004—C言語利用の高信頼化ガイド (AMAZON)

2006年10月18日

緩衝材?

某金沢方面から送られてきた物資の中に入っていた、まるで緩衝材のようなジャンク。うけました。



27C256 (32Kbyte紫外線消去ROM)って懐かしいですな。80年代にタイムスリップしました(^-^)

2006年10月19日

CYGWIN inetd

cygwinでinetdを実行する。俺メモ。まずWindowsXPの環境変数PATHにC:\cygwin\binを追加する。やらなくていいだろう、なんてさぼってたらダメ
マイコンピュータ→プロパティ→詳細設定タブ→環境変数→
  Path に C:\cygwin\bin を追加
再起動
inetdのインストール
インストールしておくもの
    Admin/cygrunsrv
    Net/xinetd
サービスの起動設定
$ /usr/sbin/inetd.exe --install-as-service

CYGWIN nfs-server

cygwinでnfs-serverを実行する。いまさらだけど俺メモ
インストールしておくもの
    Admin/cygrunsrv
    Net/nfs-server
nfs-server-config を実行する
$ nfs-server-config
This script sets up a default configuration for running an NFS server under
Cygwin.  As part of this setup, the script will do the following:
 
  1) Create a user account to run the services under. [OPTIONAL]
  2) Install portmap, mountd, and nfsd as Windows services.
  3) Create a sample exports file.
  4) Create a sample uid/gid mapping file.
 
After installing, please read the nfs-server README for Cygwin:
 
  /usr/share/doc/Cygwin/nfs-server-2.3-*.README
 
This document contains notes on installation and documents known problems
and workarounds with the NFS server; ex:
 
  - ISSUE : Recommend using ntsec
  - ISSUE : Daemons are single-threaded
  - ISSUE : Daemons require 'impersonate logged on user' right.
  - ISSUE : Daemons cannot re-export mapped network drives
  - ISSUE : Daemons expect 'nobody' or 'Guest' as anonymous user
  - ISSUE : Portmap service fails to start
  - ISSUE : Cannot export Windows directories not under Cygwin root
  - ISSUE : Considerations when mapping UIDs/GIDs
 
Do you want to continue? (yes/no)
と聞いてくるので yes とタイプ
Checking for other Unix environments on this system ...
Good! There doesn't seem to be any other Unix environments installed.
 
You can choose to install the services so that they run under the local system
account, or under a separate user account.  Which option you should choose
depends on which version of Windows you are running:
 
  Windows 2000 : You may run nfsd under either a local system account or
                 a separate user account.  You _probably_ want to run under
                 the local system account.
  Windows XP   : You _must_ run nfsd under a separate user account.
 
If you choose to run nfsd under a separate user account, you will be prompted
for a user name and password.  If the user name you supply does not exist,
it will be created.
  
Do you want to run nfsd under a separate user account? (yes/no)
「WindowsXPだと__必ず__別ユーザを作りなさいよ」といわれたので yes と答える。
User name : nfsd
Password  : nfsd
とりあえず nfsd という名前でユーザを作った。
nfs関連デーモンの起動
$ cygrunsrv.exe -S portmap
$ cygrunsrv.exe -S nfsd
$ cygrunsrv.exe -S mountd
/etc/exports ファイル(C:\cygwin\etc\exports)の編集
一番最後に以下のように記述
/home	(ro,no_root_squash)
これで再起動。nfsが使えるようになっているはず。

2006年10月20日

CYGWIN sh3 sh4 cross gdb

やっぱビルド一発というわけに行かなかったか。
> > make[2]: *** No rule to make target `../../intl/libintl.a',
> > needed by `run'.
> > Stop.
>
> ./configure --disable-nls usually fixes this kind of problem.
http://www.sourceware.org/ml/insight/2004-q4/msg00109.html
超すばらしいヘルプを発見した

2006年10月22日

gdb-6.3 sh4/sh3 Cygwin 続き

とりあえずコンパイルが通った。通っただけでまだ細かくは試していない。
../configure --prefix=/usr --disable-maintainer-mode  \
--disable-gdbtk --disable-tui --disable-nls  --target=sh4-linux
すると
gcc -c -g -O2     -I. -I../../gdb -I../../gdb/config -DLOCALEDIR="\"/usr/share/l
ocale\"" -DHAVE_CONFIG_H -I../../gdb/../include/opcode  -I../bfd -I../../gdb/../bfd -I../.
./gdb/../include -I../intl -I../../gdb/../intl  -DMI_OUT=1 -DTUI=1 -Wimplicit -Wreturn-typ
e -Wcomment -Wtrigraphs -Wformat -Wparentheses -Wpointer-arith -Wuninitialized -Wformat-no
nliteral -Wunused-label -Wunused-function  ../../gdb/sh-linux-tdep.c
../../gdb/sh-linux-tdep.c:40:24: sys/ptrace.h: No such file or directory
../../gdb/sh-linux-tdep.c:43:22: sys/user.h: No such file or directory
../../gdb/sh-linux-tdep.c:44:25: sys/syscall.h: No such file or directory
../../gdb/sh-linux-tdep.c:218: error: `__NR_sigreturn' undeclared here (not in a function)
../../gdb/sh-linux-tdep.c:218: error: initializer element is not constant
../../gdb/sh-linux-tdep.c:218: error: (near initialization for `linux_sigtramp_code[7]')
../../gdb/sh-linux-tdep.c:286: error: `__NR_rt_sigreturn' undeclared here (not in a function)
../../gdb/sh-linux-tdep.c:286: error: initializer element is not constant
../../gdb/sh-linux-tdep.c:286: error: (near initialization for `linux_rt_sigtramp_code[7]')
../../gdb/sh-linux-tdep.c:394: warning: 'sh_linux_write_pc' defined but not used
って止まってしまうので、/usr/sh4-linux/include をインクルードパスの頭に追加してこの行だけやりすごし、先に進む(強引)
bash-3.1$ cd gdb/
bash-3.1$ gcc -c -g -O2  -I/usr/sh4-linux/include/   -I. -I../../gdb \
-I../../gdb/config -DLOCALEDIR="\"/usr/share/locale\"" -DHAVE_CONFIG_H \
-I../../gdb/../include/opcode  -I../bfd -I../../gdb/../bfd \
-I../../gdb/../include -I../intl -I../../gdb/../intl  -DMI_OUT=1 -DTUI=1 \
-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses \
-Wpointer-arith -Wuninitialized -Wformat-nonliteral -Wunused-label \
-Wunused-function  ../../gdb/sh-linux-tdep.c
../../gdb/sh-linux-tdep.c:63:1: warning: "REG_FPREG0" redefined
In file included from /usr/sh4-linux/include/asm/user.h:6,
                 from /usr/sh4-linux/include/sys/user.h:24,
                 from ../../gdb/sh-linux-tdep.c:43:
/usr/sh4-linux/include/asm/ptrace.h:42:1: warning: this is the location of the previous definition
../../gdb/sh-linux-tdep.c:64:1: warning: "REG_FPREG15" redefined
/usr/sh4-linux/include/asm/ptrace.h:43:1: warning: this is the location of the previous definition
../../gdb/sh-linux-tdep.c:68:1: warning: "REG_FPSCR" redefined
/usr/sh4-linux/include/asm/ptrace.h:46:1: warning: this is the location of the previous definition
../../gdb/sh-linux-tdep.c:69:1: warning: "REG_FPUL" redefined
/usr/sh4-linux/include/asm/ptrace.h:40:1: warning: this is the location of the previous definition
../../gdb/sh-linux-tdep.c:394: warning: 'sh_linux_write_pc' defined but not used
bash-3.1$ cd ..
bash-3.1$ make
ワーニングは出るけどオブジェクトはできるようだ。んでmake続行

2006年10月23日

アナログオシロ

アナログオシロスコープで、単発波形をみる方法があるらしい。え?なにそれ?と詳しく聞いてみると

1) 測定する部屋を部屋を真っ暗にする

2) 暗闇に目を慣らす

3) 単発波形が入ってくる瞬間に目をみひらく

網膜ストレージと呼ぶらしい。なるほど。


2006年10月25日

i386 Linux の time() は遅い

ふとした実験をしていて i386 Linux の time(2)は遅いことに気がついた。

30秒間に time() を何階呼び出せるか調べるプログラムを書いて実験してみた。1ループあたりの時間を調べてみる。gcc -O2 でコンパイル。

/*
 * i386 Linux の time() は遅いようだ
 * 30秒間で time() が何回 呼び出せるか実験するプログラム
 */
 
#include 
#include 
#include 
 
#define CALC_SEC 30	// 計算時間[単位=秒]
 
int main(){
	int count = 0;
	time_t end = time(NULL)+CALC_SEC;	// 処理の終わり = 現在時刻+30秒
 
	while(end>time(NULL)){			// グルグル回り
		count++;
	}
 
	printf("1loop = %lf micro sec\n",(double)(CALC_SEC*1000000/(double)count));
	return 0;
}
ホスト time()
PC Linux (Pentium4, 2.80GHz)2.984769
Cygwin (Core solo, 1.06GHz) 0.314861
CAT760 (SH4, 200MHz) 2.077872
([単位=マイクロ秒]小さいほど速い)
PC Linuxが一番遅い。CAT760よりも遅い。なんでだろ?時計ICを見に行っているのか??

次に、同じ試験をclock(3)に書き換えて実験してみる。

int main(){
	int count = 0;
	clock_t end = clock()+CALC_SEC*CLOCKS_PER_SEC;	// 処理の終わり = 現在時刻+30秒
 
	while(end>clock()){			// グルグル回り
		count++;
	}
 
	printf("1loop = %lf micro sec\n",(double)(CALC_SEC*1000000/(double)count));
	return 0;
}
結果
ホスト time() clock()
PC Linux (Pentium4, 2.80GHz)2.9847690.672957
Cygwin (Core solo, 1.06GHz) 0.3148611.439811
CAT760 (SH4, 200MHz) 2.0778723.981758
([単位=マイクロ秒]小さいほど速い)
今度はま逆で PC Linuxが早くて、Cygwin と CAT760 は先ほどの実験よりも遅くなってしまった。でも結果はほぼ性能比か。
理由までは分からないが、PC Linux の time()は遅いらしい。非intelだと早い。不思議。なんだかこういう小さなところが気になってしかたがないオイラ。

DDforWindows

うちでフリーで公開している DDforWindowsが@ITで紹介されていた。(^-^)
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/954linuximgwin.html

2006年10月26日

Cygwin gdb rebuild

Cygwinでセルフgdbリビルド gdb-20060706 パッケージのソースからのビルド
$ cd /usr/src/gdb-20060706-2/
$ mkdir build
$ cd build
$ ../configure  --prefix=/usr --disable-maintainer-mode  \
> --disable-gdbtk --disable-tui --disable-nls
$ make
やっぱしmake一発ってわけにいかないか。
make[4]: Entering directory `/usr/src/gdb-20060706-2/build/libgui/src'
gcc -DHAVE_CONFIG_H -I. -I../../../libgui/src -I.. -DWIN32 -mwin32  -I/usr/include -I/usr/include 
 -DHAVE_NO_SEH=1 -DEXCEPTION_DISPOSITION=int   -I/usr/include/../unix -I/usr/include/../win
 -DTBL_VERSION=\"2.7\" -DTBL_COMMAND=\"table\" -DTBL_RUNTIME=\"tkTable.tcl\" -DTBL_RUNTIME_DIR=\"/usr/share/redhat/gui\"
 -DSTATIC_BUILD    -g -O2 -c ../../../libgui/src/tclwinprint.c
../../../libgui/src/tclwinprint.c:26:22: tkWinInt.h: No such file or directory
tkWinInt.h が無いって。 --disable-gdbtk で tcl/tk は無効にできるはずなんだけどconfigureが効いていないみたい。cygwinの過去ログを見ても同じような症状が書いてあった。

cygwinのsetupからtcltkのソースパッケージをインストールして

$ cd libgui/src
$ gcc -DHAVE_CONFIG_H -I. -I../../../libgui/src -I.. -DWIN32 -mwin32  -I/usr/include -I/us
r/include  -DHAVE_NO_SEH=1 -DEXCEPTION_DISPOSITION=int   -I/usr/include/../unix -I/usr/inc
lude/../win -DTBL_VERSION=\"2.7\" -DTBL_COMMAND=\"table\" -DTBL_RUNTIME=\"tkTable.tcl\" -D
TBL_RUNTIME_DIR=\"/usr/share/redhat/gui\" -DSTATIC_BUILD    -g -O2 -c ../../../libgui/src/
tclwinprint.c -I/usr/src/tcltk-20060202-1/tk/generic/ -I/usr/src/tcltk-20060202-1/tk/win/
-I/usr/src/tcltk-20060202-1/tcl/generic/
$ cd ../../          ↑ -Iパスを後ろに3つ(-I/usr/src/tcltk-20060202-1/tk/generic/ -I/usr/src/tcltk-20060202-1/tk/win/ -I/usr/src/tcltk-20060202-1/tcl/generic/)追加
$ make

2006年10月30日

CAT760

ちょっと色気のある写真を撮ってみました。

ここに使ってみた。