goo blog サービス終了のお知らせ 

組み込まれたエンジニア

我輩は石である。名前はまだ無い。

クロスツール開発環境

2005-08-15 10:26:14 | 組込みシステム
Linuxをターゲットとしたクロスツール開発環境がクロスツールから
入手できるので、開発環境を統一するために、使えるのではないかと
Cygwin上でLinux開発環境を作成中。

この手のツールの常として、一筋縄ではいかない(笑)

とりあえずの問題は、makeinfoが指定したファイルを見つけてくれない。
パス名が長すぎるのが問題なのだが、ツールが生成するパスはかなり長いので
回避方法について思案中

簡単なのは手動でコンパイルしてしまって、ビルドをスキップする方法だが、
もう少しましな方法はないものだろうか・・・

本質的なのは、makeinfoを書き換えて長いパス名でも動くようにすることだ。


と、書いたけれど、makeinfoのバージョンを調べようと
which makeinfo
したら、なぜか
/usr/local/bin/makeinfo
が出てきた。
むむ、何だこれはということで、
/usr/local/bin
を検査。
どうやら、platexをセルフでコンパイルしたときにできたらしい。
/usr/bin/makeinfo --version

/usr/local/bin/makeinfo --version
はもちろん異なっているので、これは、古いものを使っているから問題なのだろう
と、
rm /usr/local/bin/makeinfo.exe
として、消してしまう。
(安全なのは、別名にすることだけれど、ま、いいや)

bintuilsのbuildディレクトリ上はこの対策だけでうまく動きそうだから
再度クロスツールコンパイルに挑戦

このツールのコンパイル、時間がやったらかかるのが問題だね。
アーカイブを展開してパッチを当てているから、再度スクリプトを
流すときには一度全部のアーカイブを消去してやり直しているんだ


PS: 順調に行くかと思いきや、glibcの構築でまたもエラー
今度は gzip がファイルがないと言っている。
これも、which gzip してみると、/usr/local/bin/gzip だ
gzipよ、お前もか・・・

パス名バッファの小さなバージョンというのは、どうしてできたのだろうか・・

セミナー準備完了

2005-08-13 20:11:47 | 組込みシステム
来週のセミナーに向けて、ドキュメントの修正と
実行環境の整理・整備を進めてきたが、ようやく完了。
CDRを26枚焼いて、ラベルを印刷して、準備完了。

このCDR、安売りで売っていたノーブランドものなのだが、
26枚焼くのに3枚はメディア不良でNGだった。

とりあえず焼けているものは一度はコンペアチェックが
通っているはずだから、当日だめなら、その場でなんとかしてもらおう。

ところで、受講者は結局のところ何人になったのかなぁ?

不思議な挙動

2005-08-13 10:28:24 | 組込みシステム
先日購入したFPGAボードで、自作CPUの動作をさせているのだが、
これがどうにも不思議な挙動を示してしまう。
やりたいことは、ボード上の4つの7SEG LEDを
CPUからメモリマップIOに設定し、ここに"HELO"と表示させる
という単純なもの。
このLEDはダイナミック発光(4つ全部に共通のデータを与え、発光させる
LEDを選択する信号を別に与える)ので、人間に見えるように早めに
ソフトで発光LEDを切り替えるのである。

問題はここから、
・出力をゆっくり動かすときには動作するが、切り替え速度が速いと
CPUが暴走しているようにみえる。
・1つだけ表示させても他のLEDも点灯する。
・FPGAベンダーツールでシミュレーションすると実機と異なる結果となる。
・命令メモリをクロックROMにすると動作が不安定

なんとも、問題山積である。
とにかく、CPUが内部的に動作しているだけなら、全然問題なさそうなので
7SEG LEDのドライブ電流あたりが影響しているかも。ベンダーツールの
シミュレーション不具合は不明なのであるが・・

まず、LEDが点灯するつもりがなくても薄く点灯するのは、ボードの回路設計が
まずいということは明らかである。何しろ、3.3VIOに5VからPNPトランジスタで
アノードを駆動しているので、ほぼ間違いなく電流は流れ込む。
では、高速動作時におかしくなるのは?
ボードを見ると、グランド配線が極めて弱いので、多分、
高速に大電流の切り替えはできなさそう・・・

ということで、このボードでは、来週のセミナーのためのCPUの
デバッグにはならなかった。

命令メモリをスタティックなROMで構成して、
プログラムループでウェイとさせながら動作させると
写真のようにそれなりに見える形になるから、とりあえずはいいか・・

不安定なボードは初心者向きの記事には不向きかもしれないなぁ

PS: 回路図を見ていて、やっぱり仕様違反で作られていることが判明
流れ込み電流最大25mAの規定に対して、おそらく最大80mA近くの電流を流す
設計になっている。これで動くほうが不思議だ。
ウェイトを入れて、ダイナミックな挙動変化を避けるようにすると
なんとか動いてはいるけれど、高速にこれらをスイッチングしたら
ひとたまりもないということだろう。
電流制限の抵抗モジュールを付け替えたいところだ・・

PS2: 表示切替時のグランドバウンズの問題だと、原因を想定し、
すべてのIO出力の後に待ちループを入れた上、切り替え時には
アノードスイッチをいったん全部オフにして、カソード出力も非表示側に
いったん戻してから、次の表示を行うように、プログラムを変更したら
クロックROMにしても安定して動作するようになった。ハード(基板・電源)の
不具合もソフトで回避する、まさに[組込みソフト」の醍醐味!
(な、わけないか 笑)

組込みプレス Startup Issue

2005-08-12 09:25:40 | 組込みシステム
技術評論社から組込みプレス Startup Issueが出ている。
CQの組込みスタートアップは雑誌扱いで通販での入手が難しかったのとは違い、
この雑誌、ムック扱いなのでアマゾンから手に入るのがいい。

ところが、明日から1週間は職場の事務方は夏期休暇に入ってしまうので、
アマゾンで発注しても手元に来るのはその後ということになる。

自宅に配送すると受け取りが難しいが、今なら24時間以内の配送となっているから
明日の夜にでも受け取れるかな?


教育用FPGAボード

2005-08-11 20:38:24 | 組込みシステム
最近、PCにパラレルポートをつけていない人が多く、
FPGAを用いた演習ができないことが多いのであるが、
ヒューマンデータからUSBからコンフィギュレーションする
教育用FPGAボードが出ている。
昨日、発注したらもう届いた。
ホームページの写真では大きさはあまり実感していなかったが、
届いてみると、ずいぶん小さい。
IOが少ないのが不満だったけれど、これだけ小さいと無理もないか。

この少ないIOで何ができるか考えよう・・・

FPGAとハードウェア記述言語の講習会

2005-08-10 09:24:11 | 組込みシステム
来週、行われる第13回パルテノン講習会の準備中。
昨年までの講習会ではシミュレーションにVerilogを使っていたが、今回は
Verilogに加えてC言語で論理シミュレーションするためのサンプルを
大量に入れたCDROMを配布予定。

SFLは1日で文法は覚えられるから、これをC言語でシミュレーションすれば
VerilogやVHDLは完全に中間言語として隠蔽できる。

ソフト屋さんには、このやり方が多分あっているはず。

だけれど、せっかくの講習会なのに参加申し込みはまだまだ少ない状況で
もったいないね~

講習会終了とオシロの活躍

2005-08-10 07:18:19 | 組込みシステム
二日目も、動作のデモにオシロスコープは活躍。
Yさんから、「いい買い物しましたね」とほめられる。
ちょっと操作性に癖があるけれど、持ち運べる大きさで
独立して動作するオシロはやっぱり便利。

このオシロ、マニュアルを見ないとほとんど操作できない。
つまみの数を減らしたシンプルさはあるのであるが、
その分、二つのボタンを同時に押したり、回すつまみも
実はプッシュスイッチで回してから押したり、
二つのボタンを「長押し」したりと、どういう感性で
設計したのかと思うことがままある。

それでも、波形を表示するという最低限のことさえしっかり
やってもらえれば、私としては十分満足できるのであった。

夕べ、講習会終了後、ラボで雑談といくつか打ち合わせ。
その後、夕食を食べていなかったので、東京駅に行く途中の
店にみんなではいる。F氏は明日出張だからと店には寄らずに
帰っていった。

ずいぶん飲んでいたような気がするけれど、スタートが遅いから
実質的な時間は大したことがない。

終電何時だったかなと気にしつつ、店を後にし、藤沢の人と一緒に
東海道線に乗った。
当然、そんな時間だから、駅についてもバスはなく、
歩いて家まで帰った。

Error 1706.No valid source could be found

2005-08-08 09:46:47 | 組込みシステム
sfl2vlは、あるバージョンから端子などのビット幅に制限をつけたのだが、
正規ライセンスを購入してくれた人から、ビット幅制限を緩和してくれと
要求があったので、正規ライセンス分だけビット幅制限を緩和するように
修正。
いつものようにコンパイルして、インストールファイルを作ろうとしたところで
タイトルのエラーが出て、その後の処理が進まない。
こんなエラー今まで見たことないぞと検索しても良く分からない。
どうもレジストリなどのアクセス制限に関係するらしいが、今まで問題に
なったこともないのに急に問題発生するのも解せない。

しばらく検索していたのだが、あきらめてキャンセルにしたら、その後、
ちゃんとインストールファイルを作成してくれる!?

Windowsは本当に訳が分からない動作が多くて困る・・

夏期集中講座終了

2005-08-05 07:42:04 | 組込みシステム
ようやく、4日間の集中講座が終了した。
ゲスト講師の方々、受講生の方々ご苦労様。

受講生がソフトウェアのテストやインスペクションを受けている間、
実験室の機材を使ってF氏と中級セミナ教材の実機テストをしようと
がんばったのだが、セミナオーガナイザのSさんの回路はF氏のしし脅しの
制御回路のインタフェースと微妙に異なり、冶具を作らないといけないので
受講生がレビューを受けて実機確認に来る合間の作業ではなかなか進まず
結局、最終的な確認はできなかった。

ボードはF氏に渡したので、後でゆっくりチェックしてもらおう。

さて、今日中に採点して、成績をつけないと、成績登録に間に合わないぞ・・


それが終わったら、月曜からのMDD受講者セミナーの準備と
その次の週のパルテノン講習会のセミナーテキスト製作・・
まだまだ暑い夏は続くね。

あ、バイオリンの練習、未だにできていない・・・
(土曜日にぶっつけ本番だろうか)

組込み技術者セミナー用教材製作

2005-08-04 08:21:50 | 組込みシステム
SESSAME中級コース用の実習教材の製作を行った。
といっても、半田付けをするだけなのだが。

セミナー担当のSさんに回路図と部品一式を送ってもらってから
しばらくたつのだけれど、実は箱も開けないままだった(m__m)
昨夜、12時ごろから意を決して半田付け開始。

でも、回路図に疑問点が出てきて、仕様書を検索したりしているうちに、
思ったより時間がかかり、3時くらいになってしまった。
そんな時間にSさんはメールを読むわけがないので、
疑問点は適宜こちらの解釈で製作を進める。

ポートの番号が違う部分は、ジャンパスイッチを付け、切り替えできるようにし、
仕様書と回路図が違う部分はどう考えても仕様書に合わせるべきだろう・・
Sさんはソフト屋さんなので、仕方がないのだが、中級セミナWGの連中は
回路図のレビューをしたのだろうか?

中級エンジニアには開発プロセスが重要と普段言っていながら、
自らのことになるとおろそかになるのではいけないね
(私自身はそんなことは言っていないから、アジャイルなプロセスでいいのだ 笑)

オシロスコープが欲しい・・

2005-08-03 23:56:29 | 組込みシステム
月曜のMDD参加者講習会の後にアーキテクチャグループの検証を行うことになった。
前回の一番の問題は組込みラボにはオシロスコープ一つないということで、
結局通信不能なのが、何に起因するのか全く不明だったのだ。

少し検索するとオシロスコープもそれなりに安い値段で購入できそうなのだが、
土曜日のレッスンの後にでも秋葉原まで行ってみようか・・・

半田付け

2005-08-03 08:08:10 | 組込みシステム
実際に目の前でやってみせ、図にも描いて指導しても
とんでもない半田付けをするのが後を絶たない。

あらかじめ指定した本を読んでおけと言っているにもかかわらず
読んでこないし、プログラムの経験が少ないからといって
何一つ分かっていないのに不安も覚えない。。

彼らは本当に技術者になりたいと考えているのだろうか・・・

違う道を探してくれたほうがお互いに幸福かもしれない

どんどん深みにはまっていく気がする・・

2005-07-31 21:50:31 | 組込みシステム
家のマシンで確認したところ、子プロセスで動いたRxvtが強制終了させられると
親のバッチファイルまでシグナルが飛んでくるので、結局バッチファイルを
終了するかの確認が入ってうまくない。

そこで、Rxvtからのシグナルを読み捨てるプログラムをC言語で別に作成し、
このプログラムからRxvtを起動するようにした。

一応、これでほぼ満足行く動作をしているのだが、最小化したコマンドプロンプトを
わざわざ開いて中断されるとやっぱりだめである。
DOSの時代にはBREAKというコマンドが動作したのであるが、NT以降のWindowsでは
これは動かないので、コマンドプロンプトを保護する方法がない(と思う)

Windowsにはsigaction関数がないので、POSIXにないsignal関数を使わされるのも
なんだか気持ち悪い・・

それでも、このくらいにしておかないと、いくら時間をかけても
所詮Windowsである。納得行く結論にはなりにくい気がする。

もちろん、startコマンドを使おうとはしたのだが、ネストされたstartの
挙動はどうもおかしく、思った形にはならなかった。