-PR-
締切済み

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

  • すぐに回答を!
  • 質問No.4188272
  • 閲覧数206
  • ありがとう数8
  • 気になる数0
  • 回答数3
  • コメント数0

今、「わかるマイコン電子工作USB機器の製作」という本の中にある、USBカーというものを作っています。
USBカーには、ストロベリー・リナックス社のEZUSB-FX2 USB ver.2 マイコンボードを使用しています。

USBカーを動かすための、サンプルプログラムがあり、今理解をしている所なのですが、ソース内でどんな動きをしているのかがよくつかめません。

以下の所に行くとどんなものか分かっていただけると思います。
http://nicotak.com/usb/index.html

スクロールしていくと、
◆7-3 USBカーの製作(DC モータの制御)という所があると思います。そこでソースファイルのダウンロードも可能です。

どなたか、このソースファイルの内容が分かる方がいましたら
教えていただけないでしょうか?

もしくは、プログラムの内容を理解すためにはどのような事をしたらよいのか、理解するための方法などアドバイスしていただけると嬉しいです。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 27% (292/1049)

ソース見たけど、コメントのとおりの内容しか書いてないけど?
何がどうわからないのか自体がわからないので、回答しようがないかと。

>もしくは、プログラムの内容を理解すためにはどのような事をしたらよいのか、理解するための方法などアドバイスしていただけると嬉しいです。
USBとキット自体(回路の構成、レジスタやポートの内容)を理解しないと、こういったものについては厳しいよ。
補足コメント
noname#29494

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

コメントは訳していたのですが、英語力が低いのか、専門知識が低いのか、コメントだけではいまいち内容がつかめませんでした・・。

>何がどうわからないのか自体がわからないので、回答しようがないかと。
ソースの中にbulkloop.cというファイルがあったと思います。
そのファイルの中に、たくさんの関数がありますよね?
その関数はそれぞれどんな役割があるのかが、分からないのです・・。
あとfw.cにはmain関数があると思うんですが、何をしようとしているのかがわかりません。
2つのファイルのコメントも訳しては見ましたが、やはり分かりませんでした。

>USBとキット自体(回路の構成、レジスタやポートの内容)を理解しないと、こういったものについては厳しいよ。
マイコン自体のマニュアルみたいのも、見たりしていますがマニュアル自体も英語で・・。難しいです・・。
投稿日時 - 2008-07-19 20:01:36


  • 回答No.2
レベル11

ベストアンサー率 37% (122/322)

ちゃんと理解するためには、最低でも回路図とマイコンのデータシートは理解してないとだめでしょうね。
補足コメント
noname#29494

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

>ちゃんと理解するためには、最低でも回路図とマイコンのデータシートは理解してないとだめでしょうね。
マイコンのマニュアルを読んではいるのですが、英語で・・。
なかなか理解できません・・。
投稿日時 - 2008-07-19 20:38:06
  • 回答No.3
レベル12

ベストアンサー率 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のテーマ
このQ&Aで解決しましたか?
関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ