2012-04

2012-03 FM3 RX62N SH2A Xen-hypervisor


もう4月


持ち越し案件

  • USBオシロみたいな奴。 --- 済み
  • SH2AのFPU使いこなし。 --- ルネ廃止
  • MinGWクロスgccのビルド。
  • OpenOCDのビルド。 --- 一応済み
  • STM32F4で何か --- 着手中






STM32F4 Discovery

  • 秋月では、在庫と在庫切れを行ったり来たりしているようだ。
  • 人気があるのか?それとも製造が終了間際なのか・・・


  • どうでもいいけれど、互換機用の104ATキーボードが製造終了で入手できなくて困っている。
  • ミツミのキーボード。通販で頼んだんだけど、品切れといわれた。
  • ミツミでなくてもいいんだけど、英語配列のまともなキーボードが欲しい。
  • 今使っている奴はだいぶへたってきたのだ。


  • Webで検索したところ、DELL,LENOVO,HPなどのPCメーカーがアクセサリーもしくは保守パーツとして英語配列のキーを 販売していた。そのパーツNoで検索を掛けると、メーカー直販でなくても国内の通販ショップで売っていることがある。
  • 英語配列で、なおかつ、\(|縦棒もしくはバックスラッシュ)の位置に拘るなら、やっぱりミツミしかない・・・製造終了なのがとても残念だ。
  • 一万円近く、あるいはそれ以上するやつもあるけれど、それらのどこがいいのか分からない。なぜスタンダードな104AT配列ではないのか?値段相応のキータッチは見込めるのか。少なくともHHKは御免だ。


基板は入手したけれどやる気が起きない。というか何をやればいいんだ。






AndroidアプリをWindowsで実行 BlueStacks App Player

なんか昔読んだニュースでは、VirtualBoxにOpenGLドライバー突っ込んで云々だったよな。(で、実行母体はAndroid-x86で、NDKのところはARMエミュだっけ?)

  • あと、どこで金取るかという問題がある。(アプリ作者側とこのエミュ作者の双方にとってのね。)


で、β1を試してみたら、全画面になったあとでマシンがOSごとリセットされてchkdskが走ったぞ!

  • マシンはSandyBridge(Core-i3) WinXP32
  • まだ使い物にはならないのか。
  • それともOpenGLなビデオカードが要るのか?



しかし、今ではAndroidの本家SDKがintel-x86版をサポートしたので、こんなパチモン(失礼)エミュレータ を使わずとも純正環境でも高速になっているらしい。

BlueStacks 出る前から用なしか?





今月号のInterface誌

QEMU特集だった。

  • ubuntu Linux上でXenを使ってもろもろのゲストLinuxを動かすことについてはさんざんやってきた。
  • 今月号を読んだら、なんと、そのXenのARM版もあるらしい。
  • てことは、AndroidでiOS動かしたり、その逆とかありえそう。
  • Androidで別バージョンのAndroidを動かすとかは別にVM使わなくてもchrootでいいんじゃないか。
  • しかしあれだ。QEMUはバイナリートランスレータだからGDBのsimなんかよりずっと高速なはずなんだけれど、
  • Android SDK(これもQEMUでARM on X86を実現している) の起動の遅さはなんなんだろうね。


  • あと、FM3(Cortex-M3)のQEMU作ったって書いてるけれど、これでUSBデバイスのテストが出来るわけではないし、
  • CPUのsimはまあ完璧に出来るのはわかっているけれど、周辺の挙動の正確なエミュは実際のところ不毛な努力になる気がする。
  • ... 気がするだけか。


  • 実際にDRAMとか配線しないでも試せるような、uCLinuxの動作確認用とかには向いているのかも。
  • それも、条件としてはI/O部分がXenの準仮想化みたいに実I/Oポートのエミュではなくて、printfとかfile i/oを仮APIのままにしておいて、
  • ホストのパソコンのコンソールやファイルシステムにおんぶにだっこさせる形式だ。
  • そうすることで、uCLinuxのソフト屋サイドとデバイスドライバー屋サイドで独立に作業できて、最後にひとつにまとめて実機動作完了までもっていきやすいし、デバッグとか切り分けもしやすくなるだろう。





NTT西のApple-TVもどきSTBが痛い件

Android機だが、まるでApple-TV

Q:USB接続やBluetoothのマウスやキーボードは対応していますか?

A:申し訳ございませんが、対応していません。

  • これは痛い。


1世代まえのAndroid 1.6のやつはこれか。

もう一つ前の初代 光boxはパソコン(Eee-PC)だったらしい。

つまり、黒歴史がもう1枚。





名刺サイズの超小型プログラマブルPC Raspberry Pi

RS

Engadget

  • 2000台作ったらしいが足りるのか?
  • 教育用で安く上げないといけないからしかたないんだろうけど、LinuxでGnomeとか動かすのにメモリー256MBはきつい。
  • むしろHDMIがついてるのが奇跡だな。わずか256MBで、HDMIの解像度でアプリが満足に動くのだろうか?
  • 最初はNTSCとVGAだけかと思っていたよ。

まあ、あれだな。256MBしかメモリー載ってないし、(たぶん)FlashROMも遅い、CPUも型落ちという制約条件のもとでいかにLinuxを快適に動かすかというスキルを試す学習教材なんだろうとおもう。うん。

  • この値段なら買ってもいいか。送料は460円だというし。

誰かAndorid移植してー。gingerbreadでいいから。





8ビット/24MHz動作の「ATmega1284p」プロセッサでMMUつきARM Linuxをエミュレーションで動作

SlashDot


  • ARM 6.5kHzぐらいのエミュレーション
  • ちょっと遅いな。やはりQEMU for AVRを開発するしか。
  • AVRでそこまで無理しなくていいから、この手法だとMMU無しのLPC2388とかCortex-M3とかにDRAM繋いでAndroid動かせるんじゃあ?






原発は無宿の地でしか稼働は許されない。

グリーンウッド

日本に関する思考実験

結局、

  • 合理的に原発を稼動させたいなら、月面か軌道上に建設するしかないだろう。
  • 月面には津波は来ないが、月震は多いと聞く。
  • そしてどちらも、冷却用の液体はないし、現実的な送電の手段もない。
  • 北方4島の面積を取り戻すよりも先に、福島県程の国土面積を失ってしまったのだから、原発に合理性なんて元からないのだ。

これは深刻な現実だ。






STM32F4-Discovery 用FM音源プログラム VerUP

シンセ・アンプラグドさん

CPURX62NSH2A(7262)FM3(MB9BF618T)STM32F4
アーキテクチャールネサスルネサスCortex-M3Cortex-M4
Clock96MHz144MHz144MHz168MHz
FPU単精度のみ単/倍精度なし単精度のみ/DSP命令あり
Flash ROM384kB0kB1MB1MB
SRAM64kB1MB128kB192kB
  • クロックだけで比較すると、STM32F4はRX62Nの1.7倍もあるのに・・・。






mruby

組み込み向け軽量「mruby」、まつもと氏が公開

  • 軽量とはいえ、コードサイズは1MBを超えているので、Cortex-M系の内蔵Flashには入らない。
  • だけじゃなくたいていのCPU内蔵Flashに入らない。
  • perlでも似たり寄ったりだが・・・。
  • で、組み込みでrubyを使う需要がはたしてあるのかどうかも良く分からない。
  • プロトタイピングをPCで行なって、そのまま実装できるならたしかに便利かもしれないが、
  • ruby単体だけ動いても手足(I/O)が無ければ意味ないわけで、TCP/IPスタックとかUSBとか無線とか
  • いろいろ動かすにはやっぱOSいるだろ、という話になって、Androidでいいじゃんで落ち着く。
  • Androidが動いているなら、jrubyも動いてるわけで、mrubyの出番はどこ?
    • Flash 2MB程度でOSが走らない環境向け?





FM3付録基板

  • 市販のUSBメモリーを挿して、そこに書いてあるWAVファイルを再生する云々と書かれていた。
  • 動くんかいな?

ホストが動くならADKを試してみたいような気もしている。(たぶんそこまで気力は持つまい。)

しかしこのコード量だと、普通の人は挫折するというより、最初から手を出さないはずだ。

ADKとなるとさらにAndroid側も書かないといけないので、面倒くせー。それと、USB HOST Shield+Androidで何がやりたいのかいまいちやりたいことがないというのが最大の問題かな。


  • まあ、それはおいといて、普通のUSBバルクデバイスにしてみたところ。

read more : FM3





FM3付録基板その2

  • さて、Flashが1MBも載っていて、クロック144MHzと充分に速い。
  • この基板をどう料理するべきか。


あんまりEthernetには興味は無いので、とりあえず、案だけ書いておく。実現するかどうかわからない(続けられる気力や時間が無いと思う)ので適当にパクっていって欲しい。

  • USBホスト機能が使える簡単なOS(それが何であるかは未定)を用意する。
  • USBの先にキーボードとUSBメモリーが挿せる様にしておく。
  • 空きPortのどこかを使って、VGAかNTSCのOUTが出来るようにする。
  • 適当なZ80エミュレータを入れて、スタンドアロンでCP/M-80を動かす。
  • それに飽きたら、MZ-80エミュとかそんな感じ。MZ-80やMZ-2000なら、クリーンコンピュータだったので、BIOS ROM(というかBOOT ROM)の抜き取りはほぼ不要(MZ-80にはBIOSがあったのだけど、4kBだし、だいたい内容覚えてるし、先頭のjmpテーブルと一部のエントリーさえ合わせれば互換BIOS作れてたしね。)。MZ-2000のほうはBASICの入ったカセットが残ってないのでちょっと難しいかな。
  • FM-8エミュの場合は、実機が無いのでBIOS ROMが抜き出せないのが困りものだ。それとビデオ側のサブシステムまで実装するとなると128kBのS-RAMではやや足りない。(気がする。頑張れば出来るのかも)


  • 別にエミュにこだわっているわけではなくて、USBキーボードとVGA OUTだけが使える簡単なOSを用意すれば、スタンドアロンなおもちゃが作れる、ということを言いたかっただけ。
  • USB HOSTが実装困難なときは、PS/2キーボードを繋いでおいてもいいと思う。けれどあれは5Vインターフェースなんだよね。


もうひとつ思いついたのが、IMSAIシミュレータとかPDP-11シミュレータ。(SC/MPシミュレータでも良い)

  • LEDをGPIOにたくさん繋ぐ。アドレス16本+データ16本くらい。
  • トグルスイッチもGPIOにたくさん繋ぐ。データ16本くらい。
  • あとは、アドレスセット用のトグルと、データ書き込み用のトグルとアドレスインクリメント用のトグルを用意する。
  • もちろん、大き目のアルミパネルに穴あけて、LEDとSWを綺麗に並べておく。
    • LEDは昔のパネル取り付けタイプで、赤か緑だ。
  • トグルSWをパチパチやって古きよき機械語の呪文を書き込み、実行。プログラムカウンタやデータバスの値どおりにLEDが明滅するのを鑑賞する。
  • 紙テープリーダーとかテレタイプが繋がるようにするとなお良い。(なかなか手に入らないか)
    • これをAVRやPICでやらせてもCPU速度的に全く間に合ってしまうんだけれど、GPIOの数が足らないんだ。
    • だから、例えば、余ってる基板(富士通FR-60とか)にやらせたほうがいいかもね。






Android:SDK入れてみた。

  • 気の迷いか。

分かったこと。

  • adbというデバッグ用のブリッジを使うためには、googleのSDKに含まれているUSBドライバーinfを使ってドライバーを導入しないとだめ。
  • そのUSBドライバーの下層にはWinUSBが使われている。


  • 問題は、端末メーカーごとにUSBのVID:PIDがまちまちなので、infがそのままじゃあ使えないってことだ。
  • USB infのVID:PID書き換えは普段からやってることなので何てことはないんだけど、googleのSDKがそんなに投げやりだったってことに驚いた。
  • で、はじめてadb.exeを起動してみたわけだが、
  • 残念なことに、WalkMan Z1000では、ファームを最新にしてもaccesoryが使えないってことが分かった。

あーあ、(自分にとっての)文鎮がまたひとつ。







GCC vs LLVM 3.0


  • ubuntuが12.04になったので、LLVM3.0が試せるのか。
  • まるで勝負になってないな。LLVMもっと頑張れ。
  • gccのARM用出力コードって、そんなに速かったのかなー。ARM用コードジェネレータの吐くコードの駄目っぷりを知っているので、にわかには信じられない。






ubuntu12.04を導入

  • VMWarePlayerに自動で入れさせたら、日本語エディションisoなのにどうあがいても日本語メニューにならないものが出来上がった。
  • しかたないので、いつも使ってるubuntu11.10イメージからアップグレードした。
  • だいぶ時間が掛かった。
  • で、LLVM3.0を使おうと思ったのだが・・・ARM用がない。

え?まさかARM用のubuntuが要るのか?

  • Androidでも買ってくるか。






mruby

組み込み向け軽量「mruby」、まつもと氏が公開

無理を承知で、FM3向けにビルドしてみた。

~/FM3/mruby/bin% file mruby
mruby: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
~/FM3/mruby/bin% size mruby
  text    data     bss     dec     hex filename
768008    2536     840  771384   bc538 mruby

audinさんの結果よりも大きくなった。

mruby\bin>size mruby.exe
  text    data     bss     dec     hex filename
  717200    2992    2680  722872   b07b8 mruby.exe
  • Thumb2負けてるぞ。


  • ちなみに、x86_64だと、こんな感じ。
  text    data     bss     dec     hex filename
695815    1632     584  698031   aa6af mruby
  • Thumb2大幅に負けてるぞ。

まあ、Thumb2のせいではないのかも知れないが・・・

  • しまった、これ、gcc をarm-none-eabi-gcc に書き換えただけのものなので、ARMバイナリーだった。ORZ orz ...




CFLAGS = -Os -DHAVE_STRING_H -mthumb -mcpu=cortex-m3
  • こうすると、こんな感じ。
~/FM3/mruby/bin% arm-none-eabi-size mruby
  text    data     bss     dec     hex filename
638920    2536     840  642296   9ccf8 mruby


  • mrubyはコンパイラも含んでいるっぽいので、純粋にVMだけを動かせればいいやん、という向きにはもっと省容量でもいけるのかもしれない。(けれど、どこまでのソースを入れればいいのかは皆目見当つかないぜ)
  • それから、ベクトルはかなり邪道寄りになるけれど、rubyを改造してBASICとか作ったら面白いかな?面白くないか。
    • rubyの変数は必ずしも$で始まらないことと、大文字で始まる変数は定数の意味がある、というのを今日はじめて知ったperl好きの俺ガイル。



参考:

Reading mruby .

Building mruby for android







はんだ付けしなくてもフラッシュROMが書き換えできる!?


  • というかむしろ、QFPの細い足を跳ね上げて半田付けできたり、熱風ゴテではがしたり貼り付けなおしたり してる人たちには到底かなわないんだけど。
  • いまだにDIPパッケージのチップしか半田付け出来ないし。






Android-x86 4.0.3(Ice Cream Sandwich)を VMWare Fusion 4 の仮想マシンにインストール

  • http://www.paraches.com/archives/4425
  • 以前VirtualBoxで試せるICSのISOイメージがあったのだが、今回のはVMWarePlayerで試す奴である。
  • インストールのこつ
    • 自動インストールを避け、「OSをあとで入れる」、カーネルはOther Linux 2.6.x にする。
    • 仮想ハードディスクをSCSIからIDEに変更する。(8Gのままでよい)
    • CD(iso)起動直後の画面はすこし乱れているので、カーソル上下で選択メニューを出す。
    • IDEの8Gはext3で1パーティション丸々確保してよい。
    • パーティションのBOOTフラグを立てること。WriteしてからQuitすること。
    • インストール時にGRUBも入れる。Fake SDカードも入れる(2047MBデフォルトのままで良い)
  • これで、LANもSDカードも使えるICSが手に入ったのだが・・・(開発用勝手)アプリのDLサイトがない。
    • 以前のAndAppStoreが、別のものになっていて、うまくインストーラーを落としてくれない模様。
    • 原因は不明。






ASUS Pad

  • http://pc.watch.impress.co.jp/docs/news/20120517_533498.html
  • Eee Padやめちゃったんだ。
  • なんかもう、世の中iOSとAndroidだらけ。
  • ついでに言うと、ARMだらけ。
  • 少し前(4年くらい?)までは、世の中ARMだらけになればノーパソの電池の持ち(2〜3時間)が長く(10時間以上)なるし、発熱も減るし薄く軽くなるはずだと思っていた。
  • だけど、ARMなノーパソ(Linux?)なんて、オタク過ぎるくらいニッチな需要なので、絶対受けられないだろうとも考えていた。
  • しかし、Appleがあっという間にその置換命題(x86→ARM、Keyboard→静電touch)を成功させてしまった。
  • その製品(iOS)と、後追いであるAndroid(いつまでたっても試作品OSなのに・・・)を、みんなあっさりと受け入れてしまって今に至る。
  • あーあ。なんてこったい。



  • intelのこととか、Windowsのこととか、(ガラケーのこととか)、たまには思い出してあげてください。by Atom







CQ-FRK-FM3基板用 FM音源プログラム HEX

シンセ・アンプラグドさん。






<前の月次の月>