« 2006年5月 | トップページ | 2006年7月 »

2006.06.27

XILINX FPGAの購入方法

Mobile JTAG Cableの在庫が急減してしまったので、その構成部品であるFPGAを仕入れようと、いつもの代理店に問い合わせたところ、1.5ヶ月待ちとの回答が返ってきました。

それでは時間がかかりすぎるので、他の手を考えることにしました。
まず、XILINXのFPGAなどを購入するルートとして、XILINXのOnline storeがあります。
(Xilinx.comのトップページにはあるのに、xilinx.co.jpのトップページにはリンクがない)
これはお勧めだったのですが、在庫があるのにリードタイム4週間とか書いているので、ちょっとためらいます。

正規代理店とOnline Store以外の方法としては、Digikeyがありました。
最近ではDigikeyでもXILINXのほぼ全種類のFPGAやらCPLDがラインナップされているので、かなりお勧めの購入方法でした。
しかし、今回目的のFPGAが残量9とのことでしたので、今回に限り断念しました。

途方にくれていると、数日前にパル○ックさんから電話があったのを思い出しました。
その電話は、「今までALTERAのデバイスを売っていたけど、これからはXILINXを売っていくからよろしくね」という趣旨で、今までに取引があったとろこに電話をかけているという感じでした。
それを思い出して、ためしにパルさんに見積もりを依頼してみると、なんと、目的のFPGA数十個が、在庫があるとのことです。案の定二次代理店に回されましたが、売ってくれるとのことです。ラッキー。

FPGAデバイスを買うならオンラインストアもいいけど、やっぱり代理店ですね。
会話して状況などが聞けますので。

そういえば、Digikeyでは、先週の金曜日にはそのFPGAの在庫は9個あったのに、ためしに今日見てみると残量が0になっているじゃないですか。
2週間くらい前に、DigikeyでXCFxxPというコンフィグも購入したのですが、それも今日みると残量0でした。

Digikeyの残量0というのは、「ちゃんと流れている商品だけど本日はあいにく0」ということなのですね。きっと。
それに比べて、RSコンポーネンツの残量0は永遠に・・


| | コメント (0)

2006.06.25

なぜ、特殊電子回路㈱にしたのか

なぜ、ナヒテックという名前をやめて、特殊電子回路という名前に変更したのか。
よく聞かれます。

ナヒテックという社名の由来は、私のペンネームである「なひたふ」に由来しています。
これでは、名も体も「ナヒテック=なひたふの個人企業」ということになってしまいます。

ところが、会社というのは本来、何かの目的のために人が集まって資本を出してできるもので、
一人が占有すべきものではないという意見も聞かれます。

そもそも株式会社というのは、大航海時代に、船を購入して航海するのは万が一難破や盗難されたときのことを考えると、一人の資本で行うのはリスクが高すぎた、ということから複数の人が資本を出し合ったのが始まりと聞いています。

現在ではそんな昔とは違って船や工場を買うような資本がなくてもSOHOは始められますし、一人でも始めることはできます。法的にも社長一人でも株式会社になることができるようになりました。
ですが、特殊電子回路㈱は、個人の企業ではなく開かれた企業を目指します。

特殊電子回路㈱は、これまでのナヒテックとは違い、多くの人に経営に参画してもらい、真の意味での株式会社となって発展していけるよう努力していく所存でございます。

皆様、今後とも特殊電子回路㈱をよろしくお願いします。

| | コメント (0)

2006.06.24

新人歓迎会

特殊電子回路㈱ではアルバイトの方を2名採用しました。
そこで、今日はささやかながら歓迎会を催しました。

特殊電子回路㈱の社員2名と、アルバイトの方2名に加えて、
スペシャルゲストとしてすすたわりさんをお招きしましました。
すすたわりさんには、未踏ハードのことや研究の話など、いろいろとお聞かせいただきました。

秋葉原ハード屋同盟みたいなのができるといいね、ってことで。

| | コメント (1)

2006.06.23

株式会社化の登記完了!

法務局へ電話してみたところ、株式会社化の登記が無事終了しているとのことでした。

これでついに、有限会社ナヒテックは、特殊電子回路株式会社化しました。
でも、いきなり名前を変更するといろいろ混乱するので、徐々に移行していきます。
「ナヒテック」という名前はブランドとして残すかもしれませんが、
目標としては、7月15日ごろの切り替えを目処に移行します。

社名の変更って、考えただけでも大変ですね。
名刺やWebサイトは勿論、パンフレット、封筒、契約書、納品書、請求書、銀行の口座・・・
ソフトウェアの中のタイトルバーに至るまで、変えなければなりません。ふぅ

| | コメント (0)

2006.06.21

SH2のJTAG ICEが動かない?

ある方にSH2のJTAG ICEが動作するかの確認をお願いしたところ、動作が芳しくないとのこと。
「SH7144と接続できません」とのメッセージが出て、起動できないそうです。
未だ原因は不明です。

他にもJTAGデバッガが起動しない方がいらっしゃいましたら、メールか何かでご連絡いただければ幸いです。

| | コメント (3)

2006.06.17

SH2用JTAG ICEβ版第二版リリース

お待たせしました。

SH2用JTAG ICEの第二版をリリースしました。
また、使い方などを下記のページにまとめましたので、あわせてご覧下さい。

SH2用JTAG ICEのページ

なお、今回のバージョンも使用期限は6月末です。

ここだけの話ですが、このバージョンの期限が切れるころには次のバージョンをリリース予定です。ある日突然SH2デバッガが全く使えなくなる、ということはないようにする方針ですので、ご安心下さい。

| | コメント (0)

2006.06.16

山際さんのmonitorを試す

JTAGデバッガの動作を確認するための何か良いサンプルプログラムはないかと思っていたところ、Interface7月号で山際さんのmonitorが紹介されていたので、早速試してみることにしました。

まず、山際さんのsh-toolsをインストールしてMakeすると、私の環境ではなぜか
 Fatal: Unable to execute command: /usr/local/sh-tools/bin/sh-elf-ld
とエラーが出てしまいます。
Makefileの中でGCCとLDとASとOBJCOPYの実行ファイルを指定しているところがあるので、/usr/local/sh-tools/bin/を削除し、
--------------------------------------------
 GCC = sh-elf-gcc
 LD = sh-elf-ld
 AS = sh-elf-as
 OBJCOPY = sh-elf-objcopy
--------------------------------------------
とすると、うまくMakeが通るようになりました。

SH2のJTAGデバッガを使うには、ROMの0x20番地に0xC91F0606というマジックナンバーを書き込んでおかなければなりません。そこで、startup.sに次のように2行追加します。
--------------------------------------------
 .long _startup
 .long 0xFFFFFFFC
 .org 0x20      ・・・ ★追加
 .long 0xC91F0606 ・・・ ★追加
 .org 0x200
 #ERI_0
 .long 0x00000000
--------------------------------------------
これで再度Makeしたところ、エラーこそ出ないものの、正しくファイルが生成されない。
コンパイル過程をよくみると、
 sh-elf-as startup.o -o startup.o
となっています。どうやら、私の環境ではMakefileを実行するためのMake.exeが、Cygwinのものではなく、Borlandのものが使用されていることが判明。BorlandのMake.exeでは、Makefile中の
--------------------------------------------
 startup.o: startup.s
  $(AS) $< -o startup.o
--------------------------------------------
という記述で、$<が依存ファイルではなく目的のstartup.oに解釈されているようでした。
とりあえず、
$(AS) $*.s -o startup.o
に書きなおしてコンパイル成功。正しく目的のMotファイルが得られました。

FDTを使ってmonitor.motを書き込みます。19200bpsで1分くらいかかります。


7月号のモニターはちゃんと起動しました。
Monitor

試しに、ダンプしてみると、あれ、ちょっと表示が変かも。
ダンプの表示は、横が16バイトなのに縦が8バイトづつ増えていくので、同じ内容が2度表示されています。まぁ、気にしない。
Monito2

ところが、いろいろと使ってみると気になる点がありました。
コマンド入力で「dl 11」(つまり、11番地からダンプ開始)としたり、「rwl 11」(つまり、11番地の内容をワードで読む)をすると、このmonitorは固まってしまいます。

Monito3_1

SHは、ワード境界、ロングワード境界を守らずにメモリアクセスすると、例外を発生させてしまいます。これはアドレスエラー例外といいます。きっと、この例外が発生しているのでしょう。
ためしに、JTAGデバッガを起動し、monitorを走らせます。アドレスの0番地に、JTAGデバッガから、ハードウェアブレークポイントを仕掛けておきます。

ここで、「rw 11」と入力します。すると、monitorの反応はなくなり、JTAGデバッガがPC=アドレス0番地を指して、コアが停止したことを告げてきました。
Monito4



SH2の7144はアドレスエラー例外が発生すると例外の9番を発生させます。
JTAGデバッガで見るとVBRの値が0なので、CPUはアドレス0x24番地に記載されたアドレスにジャンプしようとします。

Interface7月号のmonitorではアドレス0x24には0が記載されているので、0番地にジャンプしようとします。
しかし、0番地はジャンプテーブルですから、0番地にジャンプしてもコードはありません。
とりあえず、0x24番地には何かのアドレスを書かなければならないので、startup.sの記述を
--------------------------------------------
#==================================
# SH-2 Exception Vector
#==================================
 .long _startup
 .long 0xFFFFFFFC
 .org 0x20
 .org 0x20
 .long 0xC91F0606
 .long _startup
--------------------------------------------
として、アドレスエラー例外が発生した際にリセットがかかるようにしてみました。

すると、「rl 11」とやった際にリセットがかかるようになりました。
Monito5

しかし、5回ほどでリセットもかからなくなってしまいます。
例外の際にリセット番地へジャンプさせても、スタックポインタは初期化されないので、どんどんスタックを食い尽くしていくためです。


ということで、いろいろ実験してみましたが、JTAGデバッガを使って
 ・比較的大規模なプログラムをJTAGでとめたり動かしたりしても、それによって特に問題は発生しなかった。
 ・アドレスエラー例外をキャッチすることができた。
 ・スタックポインタの減少が確認できた。
などが確認できました。

なお、私のSH2用JTAG ICEでは、奇数番地などから4バイトを読もうとした場合、たとえば0x1111から4バイトを読もうとした場合では、0x1111はバイトで、0x1112はワードで、0x1114はバイトで、というふうに3回に分けて読み出すことでアドレスエラーを避けています。

そういった点は、GDBでも配慮されているわけではないようです。
例えばGDBで
 (gdb)x/2w 1   (アドレスの1番地からワードデータを2つ読むの意)、
などとコマンドを打つとGDBはスタブに向かって
 m1,4
 m5,4
というコマンドを送ってきます。つまり、「奇数番地から4バイトリードを2回」と言ってきます。
つまり、アドレスエラーの回避は最も低い層で行わなければいけないようです。

ところで、SH2用JTAGデバッガをさらに使いやすくするためには、やはりJTAGデバッガから、Cのソースコードデバッグができるようにすることも必要かなと思っています。Insightを起動するのは、何かと大変です。

| | コメント (0)

2006.06.15

JTAG ICEの改良

今日はSH2用JTAG ICEを改良しています。画面の中の子ウィンドウの位置合わせなど、コマゴマした調整もありますが、ブレークポイントの扱いについて特に改良しています。 Jtagice20060615_1

現在公開しているSH2用JTAG ICEは、ハードウェアブレークポイントを使用しているため、ブレークポイントが4つまでしか設定できませんでした。

しかし、GDBやInsightからデバッグする際には、数の制限を気にすることなくたくさんブレークポイントを仕掛けたいものです。
そこで、ソフトウェアブレークポイントに対応させることにしました。

GDB上で、ブレークポイントを設定しようとした場合、GDBはスタブに対して「Z」というコマンドを発行します。
「Z」コマンドには、Z0とZ1があって、Z0はソフトウェアブレークポイント、Z1はハードウェアブレークポイントです。現在のJTAG ICEは、「Z」を処理するように作られています。

しかしハードウェアブレークポイントは4つしかないので、5つ目のブレークポイントでZコマンドを拒否すると、GDBはいきなり拒否されておかしな挙動にでてしまうようです。

そこで、JTAG ICEでは、「Z」コマンドを処理しないようにしたら、GDBは「Z」コマンドをあきらめて、メモリ書き込みコマンドを使ってソフトウェアブレークポイントを設定するような挙動に出るようです。

つまり、停止させたい番地に未定義命令(sh-elg-gdbの場合は0xc320)を書き込んで、未定義命令例外を使ってデバッガに制御を移すという方法で、今月のInterface誌に山際伸一さんが書かれている方法を、GDBは使ってきました。

ちなみに、ARMのデバッグの場合、GDBはソフトウェアブレークポイントの実現のため未定義命令(0xe7ffdefe)を書き込んできます。ですから、ARMでJTAGデバッガを作る際には、データバスに0xe7ffdefeが出現したのをEmbedded-ICE RTを使って検出し、命令実行前にトラップさせるとうまくいきます。
ARMの場合では、未定義例外を発生させる前に捉えるのがコツです。

SHのデバッガの場合もどちらかというと、ARMの場合に原理は似ているでしょう。これで、ソフトウェアブレークポイントが実装できました。もう、何個設定しても、ちゃんと動きます。

Jtagice20060615_2_1

それから、Insightって安定してないなー、すぐ落ちるなーと思っていたのですが、私が使っていたバージョンが古かったようです。
私が使っていたバージョンは、GDB5.3-GNUWING20030801と書かれていますので、かなり昔のバージョンなのでしょう。

ためしに、山際さんの記事で紹介されているInterfaceのダウンロードページにあるInsightをダウンロードして使ってみたところ、すっごく安定しているじゃないですか。バージョンを見てみると、GDB 6.4.0だそうです。これならかなり快適にデバッグできそうです。

| | コメント (0)

2006.06.14

株式会社化の手続き補正

先週の木曜日にナヒテック株式会社化の手続きを行いましたが、
申請の書類にいろいろと軽微な不備があるとのことで、
補正の手続きをしに登記所へ行きました。

新しく作った社印で、定款やら申請書にペタペタと訂正印を押しまくりです。

登記所で、隣にいたおじさんは、資本金1円で株式会社を作っていました。

| | コメント (0)

2006.06.12

税理士さん来る

今日は税理士さんに起こしいただいて、いろいろと打ち合わせです。

秋葉原に支店を出したことや、株式会社化すること、その他もろもろのお話をしました。

その中で一つ勉強になったこと。
支店を出したら、その地でも法人市民税と法人県民税を納めなければならないそうです。支店のことって、起業本にはなかなか書いていないですよね。

なるほど、他の県にいっぱい支店を出している会社は大変ですね。

| | コメント (0)

2006.06.09

ぐるっと大阪

今日は、大阪方面へ出張でした。

東京駅から朝7時33分の新幹線のぞみに乗って、新大阪へ。約2時間半で着きました。

最初の目的地は住吉大社。
すごい大きな神社ですね。社は国宝だそうです。
ここでは商売繁昌の祝詞をあげてもらいました。

それからヒューマンデータさんへ。住吉大社から茨木へ向かう途中、大阪環状線で乗り間違えてJR難波駅に嵌ってしまいます。このころ、ようやく大阪環状線と新大阪の位置関係が掴めてきます。

ヒューマンデータさんに1時間くらいおじゃましていろんな話をしてから、枚方市へ。茨木市から枚方市は地図上ではそんなに遠くはないのですが、電車で行くと一旦大阪まで戻らなければならないので、タクシーでいくことにしました。10kmの道をタクシーで平均30km/hくらいで走って55分。
運転手さん。道を間違えたでしょう。

枚方市で打ち合わせの後、新大阪の駅である方と待ち合わせ。夕食をご馳走になります。

東京に戻る前に、新大阪の駅でお土産を買っていきました。京の抹茶プリンと大阪あんプリン。それからたこ焼き饅頭。

帰ってからプリンを食べようとしましたが、賞味期限1ヶ月以上あるプリンというのもどうかと思って激しく悩みました。

| | コメント (0)

2006.06.08

有限会社から株式会社へ!

今年の5月から、会社法という法律が施行されて、有限会社は株式会社へ容易に移行できるようになりました。

そこで、有限会社ナヒテックも株式会社へ移行することにいたしました。

株式会社にするのに必要な書類は、株主総会議事録、有限会社解散登記申請書、株式会社設立登記申請書、株式会社定款の4種類です。これらを揃えて登記所に行って手続きをしてきました。

株式会社化の際に会社の名前を変更することもできます。
そこで、ナヒテックは、会社名を変えることにしました。

新しい会社名は、

特殊電子回路株式会社

です。

さて、「有限会社ナヒテック」という名前は個人事業時代から延長して使ってきた名前でした。愛着がある名前で気に入ってはいたのですが、名前から会社の業務がわかりにくいということと、個人名を冠していることから個人の会社いうイメージを引きずっていました。

新しい会社の業務の内容はこれまでと同じく、「①電子回路の設計開発の受託」、「②他所ではできない特殊な電子回路の設計」、「③電子技術に関する技術コンサルティング」です。
電子回路を通じてより良い社会の発展に貢献し、日本の国益にかなう電子回路を開発すること、を理念の根本に置いています。

約1ヶ月の移行期間を経て、新しい会社名へ移行する予定です。
新しくなったナヒテック、もとい、特殊電子回路株式会社をよろしくお願いします。

| | コメント (0)

2006.06.05

SH2用JTAG ICE β版リリース

Interface誌のSH2ボード(CQ7144A)で使用できるJTAG ICEをリリースします。

このJTAG ICEを使うと、XILINXやALTERAのパラレルケーブルや、ナヒテック製のUSB-JTAGケーブルを用いて、CQ7144AをJTAGデバッグできるようになります。

ダウンロード先は下記のURLにあります。
http://www.nahitech.com/jtag/sh2ice.html

本ソフトウェアは無償でリリースされています。

なお、本ソフトウェアはβ版につき、バグが多く含まれている可能性がありますので、その点はご了承ください。また、6月末までの使用期限がありますが、より完成度が向上したものを何らかの形でリリースする予定ですのでご安心ください。

■使い方

インストールすると、次のようなアイコンがデスクトップに表れます。これをクリックしてください。
Jicecq7144

起動したらツールバーの中の○で囲ったボタンを押してください。
Jicecq7144_2

次の画面が開きますので、XILINXのケーブルを使う場合は、そのままデフォルトの状態で「OK」ボタンを押します。
ただし、最初の1回は、デバイスドライバをインストールしなければなりませんので、上の画面で「デバイスドライバ(O)→インストール」を実行してください。
Jicecq7144_3

あとは、CPUをとめるなり、ステップ実行させるなり、自由自在です。
Jicecq7144_4

RS232Cを介したデバッグとは比べ物にならないほど快適なデバッグが楽しめます。
ぜひともJTAGデバッグのサクサク感をご堪能ください。

詳しい使用方法については上記のURLをご覧下さい。

| | コメント (0)

2006.06.03

こういう電話は困ります

今日の昼下がりのことです。
突然、電話がかかってきました。

「あの~ なひたふ新聞を見たのですが」
「はい。なんでしょうか」
「教えていただきたいことがあるのですが、よろしいでしょうか」
「はい承りますが」

「◎×△□・・・」

外出するときはナヒテック事務所にかかってきた電話を、ボイスワープで携帯に転送しています。そのとき、私は秋葉原の街中にいたので、喧騒でよく聞き取れませんでした。

「ちょっとよく聞き取れないのですが。」
「あ。教えていただきたいのですがよろしいでしょうか。
 回路図入力がうんたらかんたら、お勧めの回路図エディタを教えていただけないでしょうか」

!?
教えてクン???
しかも電話で。

口調や声のトーンから想像するに、中学生や高校生ではない。
ある程度の年齢を重ねた人の声である。

しかも、「なひたふ新聞」という名称は既に使っていないし、
回路図エディタの話題も書いたことがない。
電子系のホームページの人に適当に電話をかけているのだろうか。

メールならまだ許せる。しかし、いきなり電話をかけてきて質問はないだろう。
何の義理があって、いきなり電話をかけてきた見ず知らずの相手に教えなければならないのか。
しかもそっちは、発信者番号非通知。

「電話でのお応えはしておりません。
秋葉原に事務所があるので、お越しください。
なお、ご相談は有料で承ります」

と丁重にお断りした。
もうかかってこないだろう。

| | コメント (0)

2006.06.02

SH2用JTAG ICE

現在、SH2用JTAG ICEを鋭意開発中です。
当面の間はInterface付録SH2基板専用となります。

Sh2jtagice

ようやくInterface付録SH2基板での動作が確認できました。
Interface付録基板をXILINXケーブルでつなぐ
このソフトウェアを使うと、XILINXやALTEARのパラレルケーブルを使ってSH2のJTAGエミュレータが動きます。

SH2基板には特に改造を施す必要はありません。
DBGMDピンはジャンパしたり抵抗を外したりせず、そのままにしておいてください。
JTAGエミュレータをつなげば安定して動作します。

さて、いままで、このJTAGデバッガで割り込みを使ったプログラムをデバッグすると動作がおかしくなるという不可思議な現象に悩まされてきたのですが、昨夜から急にひらめいて解決してしまい、ほぼ完璧に動作するようになりました。
こうなったら、リアルタイムOSとか、割り込みをバリバリ使った環境でJTAGデバッグしてみたいものです。

現在の機能としては、
 ・CPUの停止&再開
 ・ステップ実行
 ・逆アセンブラ
 ・メモリ読み書き
 ・レジスタ読み書き
 ・ELFファイルダウンロード
 ・スタックの表示
 ・GDBからのリモート接続受け付け
etc.と、シンプルなものです。ですが、非常に快適な速度で動作します。
SH2デバッガのコアの部分はできたので、あとはWindows上の簡単な操作でいろいろなことができるよう、使いやすくするのみです。

近いうち(来週中くらい)にβ版を一般公開する予定です。
お楽しみに。

| | コメント (0)

« 2006年5月 | トップページ | 2006年7月 »