ソースの内容を理解したいのですが・・・

今、「わかるマイコン電子工作USB機器の製作」という本の中にある、USBカーというものを作っています。 USBカーには...

Interest さんからの 回答

  • 2008-07-20 11:44:07
  • 回答No.3
Interest

ベストアンサー率 31% (207/659)

どのCPUなのかな、と思って探してみました。
サイプレス社の、ftp://ftp.efo.ru/pub/cypress/cy7c68013a.pdf ですね。
CY7C68013A/CY7C68015A
EZ-USB FX2LP™ USB Microcontroller
High-Speed USB Peripheral Controller

まずは、CPUというかマイコンがどういう仕組みで動くものなのか知らないとデータシートを読んでも(日本語で書いてあったとしても)意味が分からないものと思います。こればっかりは、やりながら慣れてくれとしか言えません。

> ソースの中にbulkloop.cというファイルがあったと思います。
> そのファイルの中に、たくさんの関数がありますよね?
> その関数はそれぞれどんな役割があるのかが、分からないのです・・。

コメント文によると、DR_***** という名前の関数は end point 0 device request parser から呼び出される。私はUSBに関して全く知識がありませんが、ちょっとググってみたらこんなのでてきました。
http://www.necel.com/usb/ja/about_usb/USB5.html

endpoint 0 というのはUSBの制御用の転送っぽいですね。で、ホストから制御用の転送があった時は、"end point 0 device request parser"が(リンク先の表にある)どのリクエストなのか見分けて、相当するDR_***** という関数(hookと表現している)を呼び出す。

続いて、ISR_**** という関数は、コメント文によると「USB割り込みのジャンプテーブルから呼び出される。」そのままですね。ジャンプテーブルは、fx2.hかfx2reg.hあたりで定義しているんじゃないかと予想します。
さらに、そのテーブルは ftp://ftp.efo.ru/pub/cypress/cy7c68013a.pdf のpage 10にある、table 3-3 にしたがって作られているんじゃないかと。あくまで推測ですが。

ちなみに、上記の推測はまったく英語を読まずにやりました。ということは、問題は英語ではなくて、USBやCPUがどのように動くのか仕組みを知らないということにあるのではないかと思います。私はUSBやこのキットのCPUについてはまったく知りませんが、他のデバイスやCPUを扱った経験から推測で「これかな?」というのを引っ張り出してきました。

習うより慣れろの世界ですから多少時間はかかりますが、「USBも英語も覚えられて俺最強!」というくらいの気持ちで取り組まれてはいかがでしょうか。
お礼コメント
noname#29494

回答ありがとうございます。

参考にさせていただきます。
やはり、USBやCPUの知識がまだ足りないんですかね・・。
投稿日時 - 2008-07-20 19:23:32
この回答にこう思った!同じようなことあった!感想や体験を書こう!
この回答にはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
ページ先頭へ