2010-05

2010-04← → AVR/PIC両用ライター usbシリアル変換  usbキーボード  簡易ロジアナ、赤外線リモコン信号観測

5月:



先月のまとめ

  • hidmon-2550/hidmon-14kのHID転送モードをインタラプト転送に戻す。 ---> 完成
  • (もれなく雑誌が付いてくる)SH2A基板を買ったら使い道を考える。 --->考えた
  • FT2232LでOpenOCD(JTAGkey互換品)を試す(作ってみる)。--->諦めた
  • STM32のビルド環境を整える。--->完成


今月のたわごと目標








苺の格安STM32基板STBeeについて

  • 苺:■STBee掲示板
  • 国内ラインで製造しているらしい。
  • 開発環境はcode sourcery G++ Lite(無償)らしい。
  • DFUWというコマンドライン書き込みツールが公開されていた。
  • サンプルはLチカのみ。
  • たぶんCQ-FRK-STM32のFlash/SRAM増量版としてそのまま使えるはず。(未確認)





LPC2388:とりあえず動いたかも。

  • HIDクラスデバイスを作って、64byte書いて64byte読むというのをやっていた。
    1回目はOKなのだが、
    2回目の書き込みデータが前と同じままという変な現象が起きていて先へ進まない。
  • 原因は、64byteを受け取るルーチンで、
    void _HandleBulkOut(U8 bEP, U8 bEPStatus)
    {
       int iChunk = USBHwEPRead(bEP, packet_from_pc, REPORT_SIZE);
       ・・・
    }
  • USBHwEPReadの戻り値でエラーチェックしないと前のデータがそのままバッファに残っているのだった。


シリアルデバッグでもするかのう・・・(面倒くさい)
  • やろうと思ったら予想外に未定義シンボル(read_rとか・・)が多くて萎えた。
  • なんかバグ状態のUSBデバイスを使ってデバッグ出来るようになってしまった。
  • PICの時は、バグ状態のUSBデバイス中に、RAM内容をEEPROMにコピーするデバッグを仕込んで、PICライターで読んでデバッグしていたような気がする。
  • 半分動いているデバイスでは、デバッグに必要なメモリー情報を戻りパケットに載せたりしていたが、良く考えたらシリアルポートモニターと交互に起動すればメモリーが読めることに気づいた。(切り替えが面倒だが)

その前にprintfでシリアルに文字吐きするようにすべきだったか。


LPC2388 ToDo:

  • printfでシリアルデバッグ出来るようなlibcをでっちあげる。(たぶんnewlibのビルドオプションをいじるだけ)
  • そいつの出力先をシリアルに向ける。
  • DFUの書き込みツールを書く。
  • ARM/Thumbの逆アセンブラを仕込む。


自分としては、大昔のシリアル接続モニタでブレークポイント掛けたりトレース実行するのに慣れすぎていて
というよりは、シリアルモニタすらない、トグルスイッチでIPL、一発芸というパタンばっかりだったので。

  • JTAGは性に合わない。
  • GUIなDFUも嫌いだ。
  • EclipseとかVisualStudioはもっと嫌い。---GUIは覚えにくいしキーボードだけで操作出来ないから嫌。
  • gdbのコマンドラインならなんとか許せるレベル。GNU Insightは要らない感じ。
  • それよりもprintf埋め込みのほうが楽。
  • printfすら使えないときはLチカとかEEPROMにダイイングメッセージというパタン。

なんと時代遅れだこと。





今日の独裁者Jobs

iPad開発めぐり米アップルに調査検討 米司法省など

  • なんらかの裁定が下されてFlashを認めざるを得なくなる流れ?
  • Microsoftの独禁法違反みたく。





LPC2388:とりあえずARM7mon公開

  • たいしたことは出来ないけれど、HIDデバイス化して2388基板上のメモリー内容くらいならコントロール出来る。

read more : interface 2009-05付録基板で遊ぶPartII





ウエスタンの1TB(XPさんお断りドライブ)を買った。

で、もちろんWindowsXPに繋いだよ。

  • 手持ちHDDがseagateの320GBだったんだけどS.M.A.R.T.で見るとシークエラーとかCRCエラーの数値が半端なく大きいので、
  • 恐くなって1TB乗り換えを行うことに。(といっても2年くらい放置していたのだ)


バルク品だが、ラベルには「XPで使うときはWD Alignツールを使ってね」みたいなことが書かれていたので、それを信用することにした。

値段は1TBなんと6200円程度だった。

  • セクタ長が512B --> 4kB フォーマットされているらしい。
  • XP以外のモダンなOSでは4kB/sectサポートされているということだが、XPでそのまま使うと激遅になる(特に書き込み)という噂。
  • なぜなら、512B書こうとすると1セクタ(4k)読んで該当部分を書きこんで、1セクタ(4k)書き込みするわけだから、
  • 普通に考えて連続書き込み出来るところが512B書くたびにディスク2周回すわけだがら遅いの遅くないの・・・。(そのへんある程度バッファリングするとは思うけど、ノンバッファだとそういう説明ね)
  • まっとうに4Kバッファリング遅延書き込みをやったとしても、物理セクタ境界とクラスタ境界がずれていたら、必ず2セクタ(8k)分読んで、跨った4k部分だけクラスタを書き換えて、2セクタ書き戻しという無駄な動作をしなくちゃならない(4Kのランダムライト全てで)
  • WD Alignを掛けると、物理4kセクタとOSのクラスタ4k(の倍数)の境目を合わせてくれる(つまりパーティション境界を4kの倍数にするのかな。)
  • これまでは1トラック255セクタとかいうタワケタセクタ数変換が掛かっているはずなので、アライメントがめちゃずれるわけだ。(なんでLBA化のついでに256セクタにしなかったのだろう)


まあ、とりあえずWD Alignを掛けて使ってみた。

  • CrystalDiskMarkではread / writeとも100MB/秒程度で非常に高速。
  • ところが、disk defrag (Xp内蔵のものと、AusLogicの両方で)が死ぬほど遅くなった(ような気がする)
  • だって、たった16GBのC:ドライブのデフラグに3時間掛けても半分も終わらないんだからなぁ・・・。

google検索:WD10EADS等で読み書きが低下する低速病 というのもあるらしい。

  • あと、買うときに、ドライブの回転数が可変(パワーセーブ)なので、速度が落ちることがあるよというのを店員が言っていたのも気になるなぁ・・。





ubuntu10.04:VMWarePlayerで使えない・・・

  • VMWarePlayer3.0では、新規VMを作るのがとても簡単で、しかも簡易インストールまで出来てしまう。
  • DLしてきたubuntuのisoイメージファイルを指定するだけで短時間でインストール完了するから凄い。
  • しかも、VMWareToolsがすでに入った状態にまでしてくれるという優れもの。

ただし、

  • ubuntu10.04では、インストール後のログイン画面から先に進めない。
  • パスワード入力のところでどのキーを押しても文字が入力できないのだ。
  • 一応カーソルは反応だけしているのだが・・・。

日本語環境だとだめなのかな?良く分からない。

とりあえず、速攻で10.04を消して9.10を入れ直した。インストール速い速い。(オンラインアップデートのほうがトロいくらいだ)

  • VurtualBoxでは使えているらしい。
  • あと、簡易インストールでなければ使えるらしい。
  • というのは両方未確認。

今のところ10.04でないと困る理由は無い。



VMWarePlayer+ubuntu10.04 のその後

  • あれから、別マシンにて同様にクリーンインストールやってみた。普通にintel CPU,G31,何の変哲も無いマシン。ホストはWinXP。VMWarePlayerは念のため最新(2月)にした。
  • isoイメージではなくi386版リアルDVDを焼いてそこから入れた。
  • 全く同じ症状が再現した。
  • guest OSをLinux指定からその他(MSDOSなど)に変えてみたが変わらず。
  • VMエミュレーションのアクセラレーションを外してみたり、拡張仮想キーボードにチェックを入れたりもした。変わらず。
  • マウスだけは操作できるので、スクリーンキーボードを出そうとすると、すぐキーボード窓が閉じてしまって操作できない。
  • PS/2英語キーのせい?(前回は日本語キーを使った)なので、USBキーボードを挿そうとするがこれも無反応。
  • とにかくubuntuがアクティブになったときはNUMLockのLEDすら点かなくなる。(その割りにカーソル点滅だけ反応)
  • マウス操作で特殊unicodeを入れられる。●●●のように入力は出来るようだ。(そういうパスワードにしておけば入れるのかもしれない)
  • IME選択をIBUSにしたりNONEにしたりいろいろ各国試したがどれも入力できなかった。
  • amd64版?一応焼いているけれど、もう試す気力は無い。飽きた。

結論:バグ -- どっちが悪いかは不明。


  • あとは、今動いているubuntu9.10をdist-upgradeして、キーボードが使えなくなったらコロスって感じか。
  • まあVirtualBoxに乗り換えるキッカケにはなるかもしれない。

・・・

もしかしたら5月5日にリリースされた日本語Remixのほうでは直っているのかもしれない(未確認)

 ---->日本語Remixでも症状は直らず。ホストがWin7でもだめ。

解決策はこれ。


追記

  • VMWare上のubuntu9.10をdist-upgradeしたものはちゃんとログイン出来る。
  • 上記解決策のとおりに入力することで、ログイン不能状態だったubuntuを何とか救出出来た。
  • 「起動にXubuntuを選択する」でも良かったのか・・・。





disarmが酷いことになっている件

  • 99年のタイムスタンプだったdisarmを久々にアップグレードしようとして、binutilsのソースをマージしてみた。
  • 全然ビルドが通らない。
  • マジで通そうとするならば、binutilsのヘッダー全部持ってくるような勢いだ。
  • どうやら逆アセンブラでのシンボルのサポートが追加されていて複雑らしい。
  • あと、ARMのコプロセッサとかfloat形式の表示サポートとかもいろいろ増えている。
    • 1999年にはそんなもの一切無かった。

昔のARM逆アセンブラは、たったこれだけで完結していた。

static struct arm_opcode arm_opcodes[] = {
   /* ARM instructions */
   {0xe1a00000, 0xffffffff, "nop\t\t\t(mov r0,r0)"},
   {0x012FFF10, 0x0ffffff0, "bx%c\t%0-3r"},
   {0x00000090, 0x0fe000f0, "mul%c%20's\t%16-19r, %0-3r, %8-11r"},
   {0x00200090, 0x0fe000f0, "mla%c%20's\t%16-19r, %0-3r, %8-11r, %12-15r"},
   {0x01000090, 0x0fb00ff0, "swp%c%22'b\t%12-15r, %0-3r, [%16-19r]"},
   {0x00800090, 0x0fa000f0, "%22?sumull%c%20's\t%12-15r, %16-19r, %0-3r, %8-11r"},
   {0x00a00090, 0x0fa000f0, "%22?sumlal%c%20's\t%12-15r, %16-19r, %0-3r, %8-11r"},
   {0x00000090, 0x0e100090, "str%c%6's%h\t%12-15r, %s"},
   {0x00100090, 0x0e100090, "ldr%c%6's%h\t%12-15r, %s"},
   {0x00000000, 0x0de00000, "and%c%20's\t%12-15r, %16-19r, %o"},
   {0x00200000, 0x0de00000, "eor%c%20's\t%12-15r, %16-19r, %o"},
   {0x00400000, 0x0de00000, "sub%c%20's\t%12-15r, %16-19r, %o"},
   {0x00600000, 0x0de00000, "rsb%c%20's\t%12-15r, %16-19r, %o"},
   {0x00800000, 0x0de00000, "add%c%20's\t%12-15r, %16-19r, %o"},
   {0x00a00000, 0x0de00000, "adc%c%20's\t%12-15r, %16-19r, %o"},
   {0x00c00000, 0x0de00000, "sbc%c%20's\t%12-15r, %16-19r, %o"},
   {0x00e00000, 0x0de00000, "rsc%c%20's\t%12-15r, %16-19r, %o"},
   {0x0120f000, 0x0db6f000, "msr%c\t%22?scpsr%C, %o"},
   {0x010f0000, 0x0fbf0fff, "mrs%c\t%12-15r, %22?scpsr"},
   {0x01000000, 0x0de00000, "tst%c%p\t%16-19r, %o"},
   {0x01200000, 0x0de00000, "teq%c%p\t%16-19r, %o"},
   {0x01400000, 0x0de00000, "cmp%c%p\t%16-19r, %o"},
   {0x01600000, 0x0de00000, "cmn%c%p\t%16-19r, %o"},
   {0x01800000, 0x0de00000, "orr%c%20's\t%12-15r, %16-19r, %o"},
   {0x01a00000, 0x0de00000, "mov%c%20's\t%12-15r, %o"},
   {0x01c00000, 0x0de00000, "bic%c%20's\t%12-15r, %16-19r, %o"},
   {0x01e00000, 0x0de00000, "mvn%c%20's\t%12-15r, %o"},
   {0x04000000, 0x0e100000, "str%c%22'b%t\t%12-15r, %a"},
   {0x06000000, 0x0e100ff0, "str%c%22'b%t\t%12-15r, %a"},
   {0x04000000, 0x0c100010, "str%c%22'b%t\t%12-15r, %a"},
   {0x06000010, 0x0e000010, "undefined"},
   {0x04100000, 0x0c100000, "ldr%c%22'b%t\t%12-15r, %a"},
   {0x08000000, 0x0e100000, "stm%c%23?id%24?ba\t%16-19r%21'!, %m%22'^"},
   {0x08100000, 0x0e100000, "ldm%c%23?id%24?ba\t%16-19r%21'!, %m%22'^"},
   {0x0a000000, 0x0e000000, "b%24'l%c\t%b"},
   {0x0f000000, 0x0f000000, "swi%c\t%0-23x"},

   /* Floating point coprocessor instructions */
   {0x0e000100, 0x0ff08f10, "adf%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e100100, 0x0ff08f10, "muf%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e200100, 0x0ff08f10, "suf%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e300100, 0x0ff08f10, "rsf%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e400100, 0x0ff08f10, "dvf%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e500100, 0x0ff08f10, "rdf%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e600100, 0x0ff08f10, "pow%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e700100, 0x0ff08f10, "rpw%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e800100, 0x0ff08f10, "rmf%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e900100, 0x0ff08f10, "fml%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0ea00100, 0x0ff08f10, "fdv%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0eb00100, 0x0ff08f10, "frd%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0ec00100, 0x0ff08f10, "pol%c%P%R\t%12-14f, %16-18f, %0-3f"},
   {0x0e008100, 0x0ff08f10, "mvf%c%P%R\t%12-14f, %0-3f"},
   {0x0e108100, 0x0ff08f10, "mnf%c%P%R\t%12-14f, %0-3f"},
   {0x0e208100, 0x0ff08f10, "abs%c%P%R\t%12-14f, %0-3f"},
   {0x0e308100, 0x0ff08f10, "rnd%c%P%R\t%12-14f, %0-3f"},
   {0x0e408100, 0x0ff08f10, "sqt%c%P%R\t%12-14f, %0-3f"},
   {0x0e508100, 0x0ff08f10, "log%c%P%R\t%12-14f, %0-3f"},
   {0x0e608100, 0x0ff08f10, "lgn%c%P%R\t%12-14f, %0-3f"},
   {0x0e708100, 0x0ff08f10, "exp%c%P%R\t%12-14f, %0-3f"},
   {0x0e808100, 0x0ff08f10, "sin%c%P%R\t%12-14f, %0-3f"},
   {0x0e908100, 0x0ff08f10, "cos%c%P%R\t%12-14f, %0-3f"},
   {0x0ea08100, 0x0ff08f10, "tan%c%P%R\t%12-14f, %0-3f"},
   {0x0eb08100, 0x0ff08f10, "asn%c%P%R\t%12-14f, %0-3f"},
   {0x0ec08100, 0x0ff08f10, "acs%c%P%R\t%12-14f, %0-3f"},
   {0x0ed08100, 0x0ff08f10, "atn%c%P%R\t%12-14f, %0-3f"},
   {0x0ee08100, 0x0ff08f10, "urd%c%P%R\t%12-14f, %0-3f"},
   {0x0ef08100, 0x0ff08f10, "nrm%c%P%R\t%12-14f, %0-3f"},
   {0x0e000110, 0x0ff00f1f, "flt%c%P%R\t%16-18f, %12-15r"},
   {0x0e100110, 0x0fff0f98, "fix%c%R\t%12-15r, %0-2f"},
   {0x0e200110, 0x0fff0fff, "wfs%c\t%12-15r"},
   {0x0e300110, 0x0fff0fff, "rfs%c\t%12-15r"},
   {0x0e400110, 0x0fff0fff, "wfc%c\t%12-15r"},
   {0x0e500110, 0x0fff0fff, "rfc%c\t%12-15r"},
   {0x0e90f110, 0x0ff8fff0, "cmf%c\t%16-18f, %0-3f"},
   {0x0eb0f110, 0x0ff8fff0, "cnf%c\t%16-18f, %0-3f"},
   {0x0ed0f110, 0x0ff8fff0, "cmfe%c\t%16-18f, %0-3f"},
   {0x0ef0f110, 0x0ff8fff0, "cnfe%c\t%16-18f, %0-3f"},
   {0x0c000100, 0x0e100f00, "stf%c%Q\t%12-14f, %A"},
   {0x0c100100, 0x0e100f00, "ldf%c%Q\t%12-14f, %A"},
   {0x0c000200, 0x0e100f00, "sfm%c\t%12-14f, %F, %A"},
   {0x0c100200, 0x0e100f00, "lfm%c\t%12-14f, %F, %A"},
   /* Generic coprocessor instructions */
   {0x0e000000, 0x0f000010, "cdp%c\t%8-11d, %20-23d, cr%12-15d, cr%16-19d, cr%0-3d, {%5-7d}"},
   {0x0e100010, 0x0f100010, "mrc%c\t%8-11d, %21-23d, %12-15r, cr%16-19d, cr%0-3d, {%5-7d}"},
   {0x0e000010, 0x0f100010, "mcr%c\t%8-11d, %21-23d, %12-15r, cr%16-19d, cr%0-3d, {%5-7d}"},
   {0x0c000000, 0x0e100000, "stc%c%22'l\t%8-11d, cr%12-15d, %A"},
   {0x0c100000, 0x0e100000, "ldc%c%22'l\t%8-11d, cr%12-15d, %A"},
   /* the rest */
   {0x00000000, 0x00000000, "undefined instruction %0-31x"},
   {0x00000000, 0x00000000, 0}
};
  • 今はテーブル量もコード量も10倍くらいに増えている勢い。
  • なので単体抽出は難しいかも。
  • 最低でもThumb2をサポートしないとダメなんだけどな。
  • 浮動小数コプロ(neonとかいろいろ)はとおりすがりの組み込みもんにはいらない。





ubuntu10.4:すこぶる快調。

  • 例の救出に成功したubuntu on VMWareだが、
  • すこぶる快調
  • 英語版だったので、速攻で日本語に切り替えて、英語キーに戻した。
  • 起動速い、画面デザインやX端末のデフォルト設定もグッド(英語版だから?)
  • 何より、背景画像に、いつも使っているWindowsの背景と同じ(彗星の)やつが標準で入っていたのに驚いた。





ギリシャ問題

以下、引用。

◆ユーロ危機はギリシャでなくドイツの問題
 【2010年4月30日】EUは昨秋、大統領と外相ポストを新設し、政治統合に動き出した。
オバマもブッシュ同様、英国を邪険にする態度をとっている。米英の財政赤字も急増し、
このままでは英米覇権は崩壊だ。そのため英米中心主義の側は、ギリシャ危機を扇動し、
ドルの対抗馬となりそうなユーロを潰しにかかる金融戦争を先制攻撃的に起こした。
戦争といっても、戦っているのは米英の側だけで、ドイツはほとんど応戦せず、無抵抗で
やられているばかりか、利敵行為をする人がドイツ内部に多い。 

ああ、この先読みたいな・・・。

  • なんか降って湧いたような世界金融崩壊危機の第二幕。
  • 結局のところこれは経済戦争なんだな。
  • で、国家を経済破綻に追い込んだあとで、G20のような(世界支配の)機構を使って世界政府を樹立しようという 企みがあるのかもしれない。

企てているのは誰?





ネットブック売上が激減:iPadの登場で(更新版)

http://wiredvision.jp/news/201005/2010050722.html

  • DELLの新型Mini10があまりにもやる気ない理由はこれなのか。
    • Win7が出たので、大幅ディスカウントだったWinXPバンドル廃止。
    • N450に変わって電池の持ちが良くなって実装体積も小さくなったはずなのになぜか値上げ。
    • というかN450で実装チップ数が減っているのにシステム価格を値上げしたintelもintelだ。
    • N450で性能はちっとも上がっていないのにWin7でもっさり感増量。これじゃあダメだネットブック
    • N470はほんのわずかしかクロック上げてない。これすらラインナップにない。

なんて、文句ばっかりつけてるけれど、キーボードのついてないiPadなんていらないよ

  • でも、blutoothキーボードが付いて脱獄可で安かったらiPadも悪くないな。うん。

結局iPad人気の意味するところは、MS(win7)とintel(Atom)の終了予告(つまりWintelいらないよってこと)だ。





沖縄米軍基地問題

官僚が隠す沖縄海兵隊グアム全移転

  • http://www.tanakanews.com/091210okinawa.htm
  • 徳之島はじめ、どの県どの地域だって異国の軍隊の駐屯に強く反対するのはあたりまえのことだ。
  • 鳩はこうなる結果を見越していたのか?それとも甘く考えていた?
  • 結果的に米軍は日本から徐々に撤退し、日本は中国の制海権におびえながら暮らすようになるだろう。
  • 有権者の皆が反対した結果、そうなるなら受け入れるしかない。

しかし、結果的にそうなったとしても、それは鳩のせいでも基地駐屯の犠牲的精神を受け入れなかった国民(あるいは地域住民)のせいでもなかったかもしれない。

  • アメリカがそう選択したわけで、
  • 歴史の必然と言うヤツだ。





ジョブズがフラッシュをきらう本当の理由

http://ikedanobuo.livedoor.biz/archives/51417066.html

  • ハハァー、そういうことか。
  • Jobsは端末を囲い込むことで、コンテンツ市場を(iTunesStoreのように)独占したいわけだ。
  • だから、オープンな端末、オープンなブラウザ、オープンなコンテンツ市場は全部嫌なのだな。
  • これって、究極の独禁法違反だぞ





米国無人機の空爆は戦争犯罪か

最近サラコナー・クロニクルばっかり見ているので、凄くヤバイ妄想をしてしまったのだが・・・

  • イラクやアフガンの戦争で、尊い米兵の命が失われている。
    • では、犠牲者をこれいじょう増やさないように、無人機を導入。
  • これって、「戦争犯罪」だよね。
    • では、インターネット回線や衛星通信による米国内からの無線操縦をやめて、スカイネットを導入。
  • 20XX年、マシンは意思を持つ。

やばすぎー





がんばれDoCoMo!

アップルの「iPad」、国内モデルは全てSIMロックあり

だったら、こうだ!

iPhone 3G にも Android を移植

いや、ちがった。

  • AndroidにiPhone OSを移植すればよい。
  • HacintoshのPDA版だ。

頑張れどこも!(意味が違う。)





FPGA Arduino


  • 単なるI/Oの多いArduino止まりなんだろうか?
  • (オーバークロックはどこまで出来る?)
  • それとも例のJava IDEのままでHDLスケッチが書けるのだろうか?(だとすると自由度ありすぎ)
  • FPGAなんだから LED Blinkなんて、PLLとFlip Flopで書いちゃえば?
  • 良く考えたら、FPGAでなんかつくるほうがより電子工作直結って感じだね。(デジタルな電子ブロック)
  • 電子工作にC言語を持ち込むほうが不自然なんだ。

SH−2Aでなんかする。 --- 面白くないのでやめた。

シリアル接続HEWモニタのソースは非公開らしい。

  • じつはそこの部分が一番要だと思っていた。一種のgdbスタブみたいなもんだろ?
  • そこがカスタマイズできないんじゃあね。だからといってUSBモードのSH-2A用のgdbスタブをわざわざ起こすのも面倒だし。
    • 手間かかりすぎだよ。
  • 専用のJTAGドングルを購入する気は全く無し。仕事で使うわけじゃあるまいし。
  • Lチカ以外の実用フレームワークがない。--->ほんとに高価なLチカ機材になっている。
  • RTOS載せてもLチカしかしないんじゃあ、超高速大容量精密自己点滅LEDと等価。

液晶パネル繋いでなんか作るはありだと思うけど、フレキケーブルは苦手。

もう、興味の対象ではなくなった。 ---いくらはやくてりょうがおおくてももねー、手間が掛かりすぎるのはいやなんだよー。

  • 誰かが耕してくれるのを待つか、
  • 1年くらい寝かせてほとぼりがさめたころにgccで再挑戦する(予定)







衛星放送:BS17チャンネルの謎

BS17(BS291,BS292,BS294,BS295,BS296,BS297,BS298)とはなんなのか?








Comments/アンケート/2010.05.10 iPad あなたは予約した?

http://windows-keitai.com/?Comments%2F%E3%82%A2%E3%83%B3%E3%82%B1%E3%83%BC%E3%83%88%2F2010.05.10%20iPad%20%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AF%E4%BA%88%E7%B4%84%E3%81%97%E3%81%9F%EF%BC%9F

  • SB嫌われすぎ。
  • 確かに自分の周りでもWiFi版買う人しか居ない。
  • だけど、買って何に使うのだろう?
  • キーボード付いてないし、勝手アプリ動かせないし。USBホスト付いてないし。
  • 使い道ないんじゃー。
  • 液晶の質が良いのと、省電力で10時間持つのは認める。
  • ま、iPhoneマニアなら買うんだろうけれど。








光の道って、何だ?

ソフトバンク

  • http://www.softbank.co.jp/ja/irinfo/shared/data/announce/20100513_02.pdf
  • なんかiPadやiPhoneの通信帯域増加に耐え切れなくなったソフトバンクが考え出した究極の解決策?
  • 現在ソフトバンクはYahoo BBなどのサービスをやっているがADSLばっかりで光ファイバーを提供できていない。
  • その間にNTTは光ファイバーの普及率を上げてきた。
  • このままだと(10年後くらいには)ADSLサービスはかなり衰退するだろう。
  • たぶんそれでは困るので、ウルトラC技が光の道なんじゃないかな。
  • そもそもメタル線が生き残っているのは末端電話局から家庭へのラスト1マイルだけであり、局側より向こうは全部IP化されているはず(そうでもないらしい)なんで、ソフトバンクの主張は、NTTが苦労して設置してきたラスト1マイルのファイバーをオレにもよこせというふうにしか聞こえないんだけど、認識間違ってるのかな?
  • NTTにしてみれば、メタル回線のファイバー化は進めたいけれど、SBが土足で光に参入してくるのは阻止したいところだろう。
  • 案外、家の前の電柱までファイバーで来て、メタル変換器とかやりかねない。(ADSL信号はその際とても邪魔だ)--昔、πシステムというのがあったらしい。現在は廃れている。


いっそのこと、蓮紡さんが言っていたような、「光より速い」何かを発明したらいいんじゃない。発明家だし。

  • 「光より速い」はタキオンのようなトンデモじゃなくて、光ファイバーよりも広帯域な何かという意味ね。(実現可能性は低いけど。)
  • ADSLより光ファイバーが「速い」と言っているのはある一定量データの転送に掛かる時間が短いという意味であって、 信号伝達の速度は電気の伝わる速さと、ファイバー中の光が進む速さで言うと双方大差ないはずなんだ。*1



個人的な事情でいえば、今はADSLの8M契約なのに特に不便を感じない。フレッツ光の営業は月1ペースで電話が掛かってくる。(毎回断っている)

  • 全部強制フレッツ光化(Y!BB化はもっと嫌)はまるで地デジになってアナログ映らなくなるから「地デジTVに買い替えなさい」と追い立てられる感じで嫌だ。
  • もちろん無料で「地デジTV」を配ってくれるならいいけれど、フレッツ光化すると端末装置っぽい奴が3台ないと電話として機能しないし、全部通電しておく必要があるし、レンタルなのでもちろん料金に上乗せされる。(ADSLモデムは譲り受けたものを使っているので現在レンタル料は一切掛かっていない。)








Japanino

スイッチサイエンスさん

大人の科学は買ってないけど。

  • 3360円なら、普通に純正品を買ったほうが良い気がする。
  • mega168vはフラットパッケージなので、mega328とかに差し替え出来ない。(容量を増やせない)
  • USB A-Aコネと聞いて、ビックリしたけど、良く見たら、Aコネの延長ケーブルでいいんじゃ。
  • 自分は初期のUSB ポータブルHDDケースでAメスコネクタが実装されているのを持っていた。
  • そいつは、ほんとにUSB A-A (両方オス)という変態ケーブルが付属していた。
  • 遠い過去の話だ。
  • で、そいつを持ち運んでた関係で、A-Aケーブルを2本持っている。

その関係で、一番最初に作ったV-USB(AVR-USB)実験基板はAメスを基板側に付けている(USBホストじゃないのに)

まとめWiki


Android for iPhone 3G 提供開始、インストールガイドも公開

キター








PIC24FJ64GB002-DIP28

マイクロファン

  • 税抜きで650円。
  • 買おうかどうか迷っている(最中)
  • FLASH:64KB, RAM:8KB, VCC:2.0-3.6V, CLK:32MHz
  • 要は、今手持ちのPIC24FJ64GA002にUSBホストが付いたやつだ。
  • 使い道は何も考えていない。
  • DIP28pinマイコンではおそらく最速(?)嘘。たしか1命令2clkだったのでAVRの16MHz相当。但しレジスタは16bit長が16本なので、ビット総数でAVRと互角、gccも使える(自分でビルドすれば)。USBを除けばATmega644(FLASH:64K RAM:4K)とほぼ同容量。
  • あと、たっぷりのエラッタが楽しめるおまけつき。(出来れば遠慮したい)。

現在ARMもPICもSH2も飽きてる状態です。何をしたらいいんだ。








ガラパゴス・マイコン諸島の行き詰まり

■福田昭のセミコン業界最前線■
独自マイコンを維持するルネサス エレクトロニクス

  • この図を見ると、
    32bitSHは残留
    16bitH8S(X),R32C,M16Cは全部RXに統合
    8bitR8Cのみ残る。
  • こんな感じ。
  • しかし、別の表を見ると、8bitのRenesas世界シェアは20%もあるのだが・・・(H8,NEC78K?)
  • Microchipはシェア15%で2位。Atmelは5位。
  • R8Cは8bitではマイナーな気がする。とっても。

8〜32bitなマイコンは全部ARMとthumbになっても不思議ではない気がするのだがマイナーアーキテクチャの生き残り戦略はどうすればいいのだろう。

  • H8は元々8bitマイコンなのに32bit拡張されてgccが使えた。(コード効率は無理な拡張のせいで無駄に長くなる傾向)
  • 比較的大容量のFlashROMが内蔵され、優位に立った。
  • 日本語マニュアルや秋月キットなどのおかげで普及。

今ではARMやCortexM3がH8を代替する勢いで、コード効率は良いし性能も良い。H8は負けている。

  • RXで巻き返せるだろうか。

上位品種は携帯電話、PDA(Android,iPhone)はほぼARMで占められていてSHの出番はない。

  • なぜそうなったかというと、ARMはIPコア商売なので、チップベンダーがたくさん存在する(携帯電話では各メーカーがカスタムチップを製造できる)ことと、性能的にintel(Atom)に対抗できるのは今のところARMしか残っていない状況だから。

どうすればいいのか

  • RXは素性は良いので全方位展開すべきだ。Androidを乗せてARMに勝てるくらいの性能を出すべきだ。
  • ARMのようにIPコアとしても売り出すべきだ。

ARMだけが優れたアーキテクチャーではない。








CQ-FRK-SH2A

SYSLABさん

interface HP

  • http://www.kumikomi.net/interface/editors/20106sh-2a/cat119/
  • USB仮想シリアル・サンプル・プロジェクトが公開された。
  • cygwin クロスgccも公開された。
  • USB仮想シリアル・サンプルは、実シリアル・ブートローダーと同様にブートローダー機能が組み込まれているので、
  • USBのみでgcc開発hexを転送、実行出来るようになるとのこと。








Appleの危機

Appleに死角はないのか?

  • 1)iPad売れすぎ。製造請負しているFoxconnでは自殺者続出。人気の裏では多くの犠牲者。
    • だったらもっと供給絞れば良いのに。
  • 2)北朝鮮情勢が危機一髪。
    • iPhoneやiPadに必要なFlashメモリーの製造は韓国。
    • AppleA4プロセッサの製造もサムスン。
  • いっそ、Apple自ら米国で製造すればいいのに。








これは面白い:Virtual USB Analyzer

オープンソースUSBアナライザー







ARMのArduinoもどき:FEZ Domino

スイッチサイエンス

tinyCLR


  • C#でプログラミングするらしい。
  • 石はNXPのLPC2388だった。(FEZ Miniは2387)
  • ¥で8500円〜8800円するので、ちょっと割高な感じ。
  • だけどUSB HOSTコネクタも付いてるし、MicroSDスロットも付いている。
  • つまり、AVRにUSB HOSTシールドやらMicroSDシールドを取り付けるよりは割安だし、ボード単体で完結するということ。
  • C#の実装がどうなっているかは不明だが、MicrosoftのC#(無料のVisual C# 2008 Express Editionなど)を使うという ことらしいので、Windows上のC#バイトコードをそのまま流用してNXP上にC#仮想マシン(java仮想マシンみたいなもの?) を実装しているのではないかな。
  • そうすると実行速度的には厳しいものがあるような気がする(AVRのほうが速い)
  • (部分的にC#からARMマシンコードに落とすような)JITコンパイラをNXP基板上に載せるのは、メモリー(RAM容量)的に相当無理があるので。

http://www.tinyclr.com/faq/#2

  • JITが載ってるような記述もあったけど、C#のマネージドコードの実行はAVRのgccほど高速ではなさそうだ。
  • C#では(CやC++と違って)メモリーリークの心配をしなくていいしオブジェクトの開放を明示的にやらなくても不要なオブジェクトはガベージコレクタが開放してくれる(このへんはJavaも同じ)
  • ということは、実行時にランタイム側がオブジェクトのmallocやらGCを起動しているわけだし、オブジェクトの参照もマネージドなポインタを用いることになるので、いくら実行コードをARMマシンコードに変換したところで、C#の実行オーバーヘッドは大きいものになる。







次世代AppleTV

http://japanese.engadget.com/2010/05/28/apple-tv-iphone-os-99/

  • つまり、携帯電話(iPhone)からMID(iPad)、STBまで全部A4プロセッサ(+iPhoneOS)でまかなうつもりだ。
  • 課金の仕組みはソフトウェアのパッケージ売り切り販売(音楽CDモデル、ゲームソフトパッケージ)に代わって、全てクラウドの向こうからのダウンロード(有料、無料とも)。
  • 当然のことながら流通業者を全く通さないし在庫リスクも無い。ゲームソフトの単価も非常に安くなるか無料。
  • 実はこれ、インターネットというインフラコストをAppleは全然負担していない(インターネットただ乗り論)のだ。
  • もちろんサーバーはAppleのものだが途中を経由する回線コストや接続コストは多くの利用者が払っている。
  • 人々がYoutubeやニコ動、あるいは(有料の)動画配信などを楽しむようになったため、広帯域のインターネットインフラが自然に充実してしまった。もはやDVD1枚分のパッケージをDLする時間は問題にならない。
  • 任天堂やSONYのビジネスモデルはもう太刀打ちできない。
  • こうなるともう、SCEI(PS3)終わったな、という感じがしなくもない。
  • PSPにせよ、PS3にせよ、専用ゲーム端末でありインターネットデバイスでもあったわけで、こうも簡単に黒船(Apple)に蹂躙されてしまうのだろうか。
  • おそらく任天堂(Wii)の座も危うい。子供向けゲーム端末であるNDSはかろうじて生き残るか。







HTML5とWebGL

グーグルがO3Dの方針変換。WebGLに標準を統一し、O3DはJavaScriptライブラリへ

  • WebGLを実際に試したいなら、ChromiumOSかfirefoxのnightly buildを拾ってきて --ebnable-webgl --no-sandbox オプション付きでブラウザを起動する必要があるらしい。
  • ANGLEというのは、OpenGL ES 2.0 APIをDirectX 9に翻訳して発行するライブラリらしく、これもgoogleが開発している。
  • つまり、
    • JITで速くなったJavaScriptで3Dゲームを記述
    • 描画はJavaScriptから、HTML5の<canvas>要素に対するOpenGL APIの発行。
    • WindowsではOpenGLがまともにサポートされているとは限らない(ビデオカードベンダーに依存する)ので、実際にはDirectXに頼って描画。
  • まあ、そりゃQuakeも動くはずだ。(QuakeはOpenGLとDirectXの両方に対応出来ていたような気がする)

こうやって着実にWintel(DirectX依存)外しが進行中だ。(Apple系やPDA系ではDirectXが存在しない)







USB-Blaster互換18F2550が気のせいか動いている何故?

https://raw.github.com/iruka-/ATMEL_AVR/master/web/jpg/PIC/pic3.jpg

  • この一番左側のPIC18F2550基板に20PINのピンヘッダー(メス)を追加しただけという、非常にやる気のないJTAGアダプター を昔こさえていた。(つまり基板同志をピンヘッダーで接続して終わり。JTAGケーブルすら作る気ないやる気なさ)
  • 参考サイトはこちら。
  • ファームはソフトウェアSPIモードで、さらにARMのJTAG応答が遅いのでウェイトをたんまり入れている。
  • ほんとは完全に規格外なんだけれど18F2550を3.3V動作させて、無駄な抵抗一切無しにLatticXP2に繋いで コンフィギュレーション出来たところまでは確認していた。
  • ところが、LPC2388基板に繋いだときだけJTAG認識が非常に不安定でJTAGアダプタとして使用できなかった。


  • ほんの気まぐれで、今日試してみたら普通にARMをJTAG認識できる。
  • なんで?
  • どうして気まぐれに試したかと言うと、PINヘッダーの芋ハンダに気づいたからなんだ。
  • でも、芋ハンダしていたPINはJTAGのRESET信号で、USB-Blasterでは未配線(未使用)信号なんだけど。
  • もしかしたら芋ハンダのせいではなくて、ARM側のFlash内容が変わったせい?ARMのJTAGは良く分からない。
  • USB-Blaster(もどき)がARMに繋がるんならJTAG Key clone作らなくて済むかな。
  • ラッキーなのかアンラッキーなのか良く分からない。
  • 次作るときはせめて保護抵抗をTDIとかTDOに入れておくことにしよう。(今は入れていないので最悪FPGAやARMを飛ばす可能性がある)





*1 それも家庭からもよりの電話交換局までのわずか4km程度の伝達速度なので、電話交換局からインターネットクラウドの中をルーティングしながら通過する時間に比べればたかだか4kmの電気信号の伝達時間なんてゼロみたいなもんで、むしろルーターとかモデムの信号変換時間のほうが支配的