• 締切済み

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

今、「わかるマイコン電子工作USB機器の製作」という本の中にある、USBカーというものを作っています。 USBカーには、ストロベリー・リナックス社のEZUSB-FX2 USB ver.2 マイコンボードを使用しています。 USBカーを動かすための、サンプルプログラムがあり、今理解をしている所なのですが、ソース内でどんな動きをしているのかがよくつかめません。 以下の所に行くとどんなものか分かっていただけると思います。 http://nicotak.com/usb/index.html スクロールしていくと、 ◆7-3 USBカーの製作(DC モータの制御)という所があると思います。そこでソースファイルのダウンロードも可能です。 どなたか、このソースファイルの内容が分かる方がいましたら 教えていただけないでしょうか? もしくは、プログラムの内容を理解すためにはどのような事をしたらよいのか、理解するための方法などアドバイスしていただけると嬉しいです。

noname#29494
noname#29494

みんなの回答

  • Interest
  • ベストアンサー率31% (207/659)
回答No.3

どの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の知識がまだ足りないんですかね・・。

回答No.2

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

noname#29494
質問者

補足

回答ありがとうございます。 >ちゃんと理解するためには、最低でも回路図とマイコンのデータシートは理解してないとだめでしょうね。 マイコンのマニュアルを読んではいるのですが、英語で・・。 なかなか理解できません・・。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

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

noname#29494
質問者

補足

回答ありがとうございます。 コメントは訳していたのですが、英語力が低いのか、専門知識が低いのか、コメントだけではいまいち内容がつかめませんでした・・。 >何がどうわからないのか自体がわからないので、回答しようがないかと。 ソースの中にbulkloop.cというファイルがあったと思います。 そのファイルの中に、たくさんの関数がありますよね? その関数はそれぞれどんな役割があるのかが、分からないのです・・。 あとfw.cにはmain関数があると思うんですが、何をしようとしているのかがわかりません。 2つのファイルのコメントも訳しては見ましたが、やはり分かりませんでした。 >USBとキット自体(回路の構成、レジスタやポートの内容)を理解しないと、こういったものについては厳しいよ。 マイコン自体のマニュアルみたいのも、見たりしていますがマニュアル自体も英語で・・。難しいです・・。

関連するQ&A

  • ソースの内容をとってくるメソッド

    javaでソースの内容をとってきてファイルに格納する というプログラムをつくりたいのですが、 java.netにあるURLというところを参照すると 思うのですが、そこからどれを使ったらよいか わかりません。 お願いします。

    • ベストアンサー
    • Java
  • ソースの見方

    大学の卒業研究でVisualC++で非同期型でPtoPのメッセージのやり取りを行えるようなプログラムを作成する予定なんですが、VisualC++でのプログラム開発を行ったことがなく、知識が少ないため、まずは現存するプログラムのソースを見て、構造を理解しようと考えています。 あるサイトからプログラムをダウンロードし、ソースコードを見ようと思ったんですが、どのようにすればソースが見れるのかがわかりません。 ダウンロードしたプログラムにはVisual BasicとC#のフォルダがあり、どちらかのソースを見れれば良いなとは思っているんですが、どのようにすれば見ることができるんでしょうか? VisualBasicのフォルダには、VBファイルとRESXファイル、VBPROファイル、USERファイル、SUOファイルがあります。 C#のフォルダには、CSファイルとRESXファイル、SCPROファイル、USERファイル、SUOファイルがあります。 開発環境はMicrosoft Visual Studio 6.0をしようしていますので、VisualStudioで見れる方法を教えていただけるとうれしいです。 プログラム開発はド素人なのでわからないことだらけですが、よろしくお願いします。

  • dsPICを理解したいができない

    大学の卒業研究でdsPICを用いた電子回路を扱うことになったのですが、 はっきり言ってまるで分かりません。 同じ研究室の人の勧めで、 「電子制御・信号処理のためのdsPIC活用ガイドブック」という本を購入したのですが、 専門用語が多すぎて理解できず、それらをネットで調べようとしてもいま一つ明解な答えに行きつくことができない場合が多いです。 そこで思ったのですが、掛け算を知らない子供が面積計算をできるわけがないように、 自分にはデジタル回路作成のために必要な最低限の知識がないから理解できないのではないでしょうか? 今までアナログ含めいずれの回路もまともに組んだことがなく、 電子工作といえばキットなどの回路をマニュアル通りに組んだだけで、回路設計を理解できているとはとても言い難いです。 C言語は学習しましたが、パソコン上で動かすプログラムとマイコンに書き込むプログラムの違いがありすぎて今までの知識があまり役に立っていません。 やはり一から体系的に学ばないと駄目なのではないでしょうか? そこで、全くの素人がdsPICを使った回路を作成し、 LEDやモーターなどの出力装置を制御できるようになるための、 初歩中の初歩から、専門用語の一つ一つまで、 できる限り丁寧にdsPIC(もしくはそれに通ずるマイコン)の構造やプログラミングの仕方を解説している専門書などありませんでしょうか? 我ながら大変厚かましい質問とは思いますが、 ここ1カ月ほどほとんど進歩がなく、非常に困っています。 どうぞよろしくお願いします。

  • DCモータのPWM制御について

    卒業研究でロボットを製作することになりまして、DCモータのPWM制御について知りたいのですが、PWM信号をマイコンから出力するかICを使って出力させるかどうかも決まっていません.どちらの場合でも使用しやすいICや回路例などを示してくれると非常に有難いです.

  • マイコンでDCモーター制御するため勉強期間

    ArduinoのマイコンボードをArduino IDEでしか使ったことのない人が、独学で、AVRやPICなどのマイコンで自分で一から回路を組んでDCモーターを制御できるようになるには、どのくらいの期間が掛かりますでしょうか?(普通に頑張れば3ヶ月くらいでできますでしょうか?) Arduinoとブレッドボード、ドライバICなどでDCモーターの制御はしたことがあり、C言語の基礎、高校物理、高校数学、制御工学はわかりますが、回路設計・製作の経験が全くありません。マイコンをArduino言語を使わずにC言語で制御する方法もまったくわかりません。 ご回答よろしくお願い致します。

  • RPGでプログラムからソースファイルに復元したい

    最近、RPGプログラムを使う事になったので、 プログラムの処理内容を見たいのですが、 コンパイルした後のプログラムファイルしかなく、 ソースファイルがない状態です。 プログラムファイルから、ソースの中身を見る方法がもしあれば、教えて頂きたいです。 よろしくお願いします。

  • USBおもちゃの改造

    こんにちは USBから電源を取るだけのおもちゃを改造しようとしています。 USBポートにつなぐと扇風機が回るだけです。 これを マイコン MOS-FETを使いコントロール したいのですが、5Vマイコンの電源を本来使っている  USBから とることを考えています。 ばらしてみると 電源-ダイオード-モーターGND となっていました。 これを 電源 ダイオード モータ MOS-FET GND の順でつなぎモータをコントロールしてみたいのですが この回路に流れる電流がわからないので MOS-FETを何を選定してよいかわかりません この場合 、オリジナルの回路を信じてモータの抵抗が 500mAを超えない程度あると考え  1A程度の電流が流せるMOS-FETを選択すればよいのでしょうか? 工作素人です。おしえてください。

  • 質問していることが理解できない内容だったら申し訳ありませんが、

    質問していることが理解できない内容だったら申し訳ありませんが、 もし分かるようでしたらご回答頂けると助かります。 当方あまりパソコンに詳しくないため、よく分からないのですが、 マイクロソフト オフィスエクセル 2007 で作ったデータと マイクロソフト オフィスワード 2007 で作ったデータを USBメモリーに保存して関係先に渡したところ、変換するソフトが ないためファイルが開けないと言われました。 先方がこのファイルを見るためにはどうしたらいいんでしょうか? よろしくお願い致します。

  • C言語初心者です。

    はじめて質問します。よろしくお願いします。 私は学生で、卒業研究でC言語についてやっているのですが、 あまりにも難しくてよく理解できません。 先生に聞いても専門的な事をおっしゃるので、 何の事かさっぱりわかりません。 今しているのは、技術評論社の「H8マイコンプログラミング入門」という本のH8マイコンによって空気圧サーボと呼ばれる機械を動かすプログラムを、電波新聞社の「USB機器の製作」という本のAKI-H8というマイコンで動作させるというものです。 とりあえず、AKI-H8でLEDを点灯させたりボタンを押したりする簡単なサンプルプログラムのようなものを幾つか教えていただければと思います。プログラムは全然初心者で理解できていないのでよろしくお願いします。

  • SHマイコンとPICマイコンとAVRマイコン

    SHマイコンとPICマイコンとAVRマイコン、どれがおすすめですか? どれも使い勝手等は同じですか?用途は、小指くらいの小型ロボットを制御することです。ラジコンからの信号を受け取って、信号の大きさに応じてDCモータの速度を制御することです。いま、マイコンボードのArduinoを使っているのですがNanoでも大きすぎるので、マイコンを使って回路を自分で作ろうと考えています。マイコンはH8は使ったことがあります。AVRは、Arduino IDEでArduino言語でしかプログラムしたことありません。 どうかご助言よろしお願いします。

専門家に質問してみよう