PICでUSBを!(知識ゼロからのスタートです)
PIC18F14K50のUSB機能を100%自前のソフトで制御する試みです。しかもアセンブラで!
当記事は2009年12月から「TTLでCPUをつくろう!」というタイトルの もとにほとんど毎日連載をしてきたものを再編集したものです。 2011.7.13

前へ
次へ
目次へ戻る
ホームページトップへ戻る
☆PIC18F14K50

PIC18F2550では大きすぎて、計画中のTK80互換マイコンボードND80ZVには組み込めそうにないことがわかりました。
USB機能内蔵のPICにはPIC18F4550、PIC18F2550のほかに20pinのPIC18F14K50があることはちょっと前から知っていました。しかしUSBに関する部分がPIC18F2550とはかなり異なっているようです。
案の定しっかり泥沼にはまってしまいました。

[第86回]

●PIC18F14K50用HIDブートローダのソースを読んだのですけれど…

前回は、ダウンロードさせていただいたPIC18F14K50用HIDブートローダのHEXファイルをPIC18F14K50に書き込んで動作させてみたところ、ちゃんとHIDデバイスとして認識されました、というところまでお話ししました。
なにごとにつけても、道に迷って困ったときは、その道の先達に教えを乞うというのがなによりの上策であります。

そこで。
ダウンロードさせていただいたフォルダにはソースプログラムもありましたので、いったいどこがどのように私のプログラムと違っているのかをお教えいただくために、ソースプログラムを読み始めたのでありますが…。

あかん。
わかりませぬ。

ソースプログラムならわかるだろう、とお思いの方も多々いらっしゃるかとは存じますが、なかなかそういうものではありませぬ。
プログラムというものは、それを書いた人の考え方が色濃く反映されるものでありまして、ことに私などのように、単細胞な者にとりましては、プログラムがメインやらヘッダーやらに多数分割されておりますと、もうだめ。お手上げになってしまいます。
なにしろ、同時にはひとつのことだけしか考えられませんから、メインを解析していて、いきなりヘッダーで定義されている未知の変数とか関数に出くわしてしまいますと、思考がそこでストップしてしまいます。

うむむ。
この変数はどこで定義されているのだろう?
ということでヘッダーを探る旅にでかけてしまいます。
やっと旅先でその正体をつかんでもとのメインに戻ってまいりますと、
あれ。どこまで進んでいたんだっけ?

で、また最初から失われた記憶をたぐりながら、切れた糸をつむぐ作業を繰り返すことになってしまいます。
一所懸命努力してはみたのですけれどねえ。

あきらめました。
さっぱり頭に入ってきてくれないものですから…。

こうなったら、HEXファイルを逆アセンブルするしかないか。

おいおい。
ソースが理解できないのに、逆アセンブルしたコードなら読めるってか?

ええ。まあ。
人には、得手、不得手、というものがありまして、どちらかと言いますと、私の場合は、人様がお書きになったソースプログラムよりは、マシンのレベルに落ちた無機質なコードを読み解く方が性分に合っているらしいのですねえ。

むむ。
PICの逆アセンブラを作るか?

いや。ここでまた、そんなことに首をつっこんでしまいますと、ただでさえ道草に道草を重ねていますのに、もう本道に戻れなくなってしまいます。
となれば。
ネットで捜すしかない、ということになります。

●PIC18 Disassembler

ネットを探りますと、フリーのものもあるようなのですが、どうも、これ(Pic18 Disassembler 0.4.0.647)が一番秀逸なようです。



PIC18 Disassemblerはフリーではありません。
有償ソフトウェアです。
が、有難いことに、評価用に「5 days trial版」がダウンロードできます。
5日間しか使えませんが(と書いてあります)、こちらは無償です。
もちろん。さっそくダウンロードさせていただきました。

ちょいとクセがあって、実際にDisassembleできるまでに、少しとまどったのですけれど、ものは試しということで、前回お世話になりましたPIC18F14K50用HIDbootloaderのHEXファイルをロードしてDisassembleしてみましたら。

おお。
すごい。
しっかりと、Disassembleできたじゃありませんか!



あ。じつはこれ。
trial版ではありません。
気に入ってしまいましたので、Full versionを買ってしまいました。
そのお話は次回にまた詳しく。

でも、trial版でも、できることは同じです。
ただ、trial版では、結果のリストをSAVEすることはできません。
CPUをつくろう!第515回(2010.6.4upload)を再編集

PICでUSBを![第86回]
2011.7.13upload

前へ
次へ
目次へ戻る
ホームページトップへ戻る