いい加減、USBデバイスの実験するのにいちいちCでコード書いてコンパイル&デバッグ は面倒いので、以前書きかけでほったらかしだった libusb バインディング に手をいれた。
以前はlibusbの事よくわからないまま勉強しながら書いてたが、 今は一応少しは知識が付いたので、単純なシンボルのインポートでは無く少しはマシなコードになったと思う。
とはいっても、今のところコントロール転送しか使わないから、コントロール転送しか実装してないんだけどね。
少なくとも、今Hackageに溢れ帰っているような、「ただシンボルをインポートしました」 みたいなライブラリは面倒の方が大きくて使いたくないです。こんなのゴミです。 データベースにゴミがあると、本当に有用なライブラリを探すのが面倒なので、 早く消えて欲しいです。
続きを読む... ( Posted at 2009年6月27日 12:35 | C0 | T0 )
gdb側とターゲット側をうまく結んでつじつま会わせをしなくてはいけないのだが、 細かく考えていくと結構めんどい。
というか、いろいろ実装していくとgdbのプロトコルがパースしづらくて困る。
めんどいのは後回しにしていくかぁ
続きを読む... ( Posted at 2009年6月24日 01:33 | C0 | T0 )
どうせデバッグ中はUSARTをホストとの通信用に潰すんだから、 GDBスタブでも焼いた方が便利じゃまいかっていう
続きを読む... ( Posted at 2009年6月23日 23:39 | C0 | T0 )
最後の006P電池を使い切ってしまった。
こりゃ先に充電器の方完成させないとデバッグ進まないかな?
続きを読む... ( Posted at 2009年6月23日 01:58 | C0 | T0 )
リポジトリの上のコードではとっくに変わっているのだが、NTRSTをポートDの5に移動した。
理由は、AVRのISPやるときに20MHzを相手に供給できるとヒューズの指定間違えた時に助かるから。
続きを読む... ( Posted at 2009年6月22日 00:52 | C0 | T0 )
申請して数週間経つのだが、メールなんか来やしない。
普通はその場で届くものなの?拒否られたってこと?よくわからん。
その前に、wineで動かす算段つけないとなぁ
続きを読む... ( Posted at 2009年6月21日 22:21 | C0 | T0 )
T/O
だけじゃ寂しいので。
JTAGデバッガが手に入ったとはいっても、やはりいちいちターゲットに焼くのは面倒くさい。 フラッシュの寿命もまぁ、気にならない訳ではないし。 そもそもlow-speedなので、ある程度イメージが太るとけっこうなストレス。
x86なコードの時には(SBCが所詮PCと同じなので)qemuに大変お世話になったのだが、 ARMの場合には豊富な内蔵ペリフェラルのエミュレーションやってくれると大変ありがたいわけで、 というか、PLLの設定しくじるコードの場合にJTAGにも応答しなくなるので、 bootモードを切り替えて焼き直さないとどうにもならないというのがめんどい。
続きを読む... ( Posted at 2009年6月21日 18:30 | C0 | T0 )
なんでurjtagからだけデバイス認識しないんだろう。
よく見るとACTIVEインジケータ光ってないって事はターゲットとやりとりしてないって事だよなぁ。
リクエストが届いてないのか、BITBANG コマンドの中でなにか勘違いしてるのか
それはそうとして、AVR用にGDBとTCPで通信するサーバが必要なのだが、 openOCDとかからCのソースでもらってもいいんだけど、 いっちょHaskellで書いてみようかなーとか策略中。
続きを読む... ( Posted at 2009年6月21日 15:35 | C0 | T0 )
行方不明だったCQ-STARM基板を発掘したのだが、今度は回路図が行方不明www。
ピン配置がまるでわからんww
続きを読む... ( Posted at 2009年6月21日 00:42 | C0 | T0 )
ごちゃごちゃいていたSCAN系のコマンドをSCANとSCAN_LASTの2本建てに絞った。
まぁ、2つの違いは最後にステート移動するかどうかだけなんだけど。
出力データを伴わない SCAN_IN は、USBリクエストの方向で判断する。 EP_INならデバイス->ホストという事なので、TDIに0を入れたまま指定ビット数スキャンして、 そのまま即座に戻す。EP_OUTならホストからデータがくるので、それをターゲットに送出する。 その場合、結果は別途 GET_RESULT で取り出す必要がある。
IR/DR/遷移無しの別も、事前移動ステートにIRSHIFT, DRSHIFTまたは0xffを指定すればいい。 同じく事後移動ステートによってLASTの判定もできそうに思うが、問題があるような気もするので、 こっちは別コマンドにしてある。
なんでAPI減らしたかっていうと、拡張機能用のコマンドが16個しか取れないのは寂しいから。
アダプタのキャパビリティビット0をAVR用OCD機能に割り当てた。 ホスト側のソフトが対応していれば低速なUSB通信の回数をだいぶ減らせるはず。
OpenOCDはJTAGアダプタに高レベル機能をまったく期待していないので、 いちいちホスト側のtclでごにょごにょやらなくちゃいけない。
まぁ、その前に実際にAVRにつないで実験しないとリリースできないけないわけですが。
そういや、mega88と74c244の間に抵抗挟むの忘れたおかげで、ISPできないのに気づいたわけですが。
なにぶん電気に詳しくないもので、JTAG使用時の通信レートに影響を与えず、 ISPにも問題無い抵抗値がどれくらいだかよく判らんのです。
盗賊のダグラス君がLv2になりました。(どうでもいい)
続きを読む... ( Posted at 2009年6月20日 19:36 | C0 | T0 )