2013-10

2013-09 FM3 RX62N SH2A PIC32MX

10月

PIC32MXでVGA出力

  • https://raw.github.com/iruka-/ATMEL_AVR/master/web/jpg/pic32vga.jpg
    >目標は、TTL爺さんよりは先に完成させたい。
  • 出来たー。(つもり


  • なんと、おまけでTinyBasicまで移植してしまった。




所感:

  • PIC32MXは、220円なのにトコトン遊べる石だ。(たぶん半年くらいは遊んでいられるだろう。まだUSB HOSTを遊んでいない
  • ATtiny2313のときも、V-USBで半年は遊べた。あの石は110円くらいだった。


  • まあ、なんというか、1つの半導体を骨までしゃぶり尽くすというジャンルは、ありかな。
  • 遊び方というのが、既製品ライターや開発ツールを一切買わないで自力でブートする、というやつだ。




これから:

  • SPIがある程度叩けるようになったので、たぶん2chまでのロジアナいけるかもしれない。
  • 単体BASICコンピュータ、作れるかも。PS/2 KEYBOARDとSDCARDとサウンド出力(とVGA出力 or NTSC)。
    • まあ、需要があるかどうかは、微妙だな
  • USB HOSTを追求してないので、やってみるのも一興。
  • でも、pcDuinoが秋月で入手できるらしいので、そっちに移るかも。
    • 1GBと8kBじゃあ、アンドロメダとすっぽんくらい広さが違うか。





HIDBoot.X更新

サイズを4kB減らしました。

もっと読む: HIDBootX





pcDuino

  • ubuntuとandroidが走るA10マイコン(CPU=1GHz,DRAM=1GB,GPU=Mali400)

http://img02.shop-pro.jp/PA01172/126/product/62881105.jpg

本家

通販(岡山)


どこがいいの?

Raspberry Pi A$25\2,500ARM11700MHz875MIPS/Core875MIPS256MBHDMI
Raspberry Pi B$35\3,500ARM11700MHz875MIPS/Core875MIPS512MBHDMIEther
BeagleBone Black$45\4,500Cortex-A81GHz2000MIPS/Core2000MIPS512MBHDMIEther各種拡張ボード(ケープ)あり
Cubieboard$49\4,900Cortex-A81GHz2000MIPS/Core2000MIPS1GBMali400HDMIEtherSATA4GBNandFlash96extendPin
pcDuino\7,350\7,350Cortex-A81GHz2000MIPS/Core2000MIPS1GBHDMIEtherArduino内蔵
  • RaspPi祭りに乗り遅れたので。
  • RaspPiよりRAMが多い。CPUもGPUもパワーがある。
  • RaspPiのCPUはARM11で、かなり古い。
  • 値段はRaspPiより高い。けれどAndroidも走る。
  • ArduinoっぽいI/Oピンが立っている。まあUSBあるから使わんけど、どうしても高速I/OポートをLinuxから直叩きしたい向きには、格好の餌食だ。
  • WiFiが実装されていないこと(USB接続の小型アダプタという手はある)。


A10の英語仕様書:

A10 Linux

  • A10とか言ってるけどARMにはCortex-A10は無い。
  • Cortex-A8 + Mali400GPUのワンチップSoCを中華メーカーがA10と名づけている。
  • シングルコアの1GHzなので今となっては、そんなに速くない。といってもMarvel ARM266MHz程度の玄箱よりずっと速い。
  • 一時期、中華Padにこの石が大流行りした。Android4.0がそのまま使えるファームがあったからだけど、実際4.0を動かすには ややCPUの処理速度が不足している気がした。シングルコアなので、重いアプリが多い今となってはつらい。GPUパフォーマンスはまだ大丈夫だ。

参考:中華PadのSoC(CPU)まとめ


pcDuino 使ってみた。

  • とりあえず2枚買った。
  • Raspberry Piは使ったことがないので、比較は出来ない。
  • けれど、pcDuino は良い。ちょっと高いけどね。


どこが良いの?

  • 性格が素直。
    • 買ってきて、電源を繋ぐだけで、内蔵2GB nandから、ubuntu12.04(GUIはlightdm)が立ち上がる。
    • (玄箱のDebianインストールのシチ面倒臭さがまるでアホみたいだ。)
    • 母艦を用意することなく、本体(+microSD+USB memory)だけで、公開されているubuntuのイメージをmicroSD側にddで書き込んで、そのままmicroSDから新しいubuntuをブートできる。
    • 新しいubuntuがトラブった場合でも、microSDを抜いて起動し、起動後にmicroSDを挿せば、自己メンテナンスできて便利。
  • 性能的にはまあ充分。
    • ARMでLinuxが動くボードとしては、充分。
    • ただし、Intel Core-i5なんかと比べちゃ駄目。比べるならAtomの旧製品のシングルコア版と比べて、たぶん劣る。
    • GUIはそんなに速くない感じだった。
    • メモリーの1GBは、まあ我慢できる。512MBだと今時のLinuxではアウトなのでラズパイはアウト。


  • Androidも動かせるらしい。
    • 未検証。まあNexus-7あるから要らんかな。


どこが駄目?

  • よく調べてないけど、RTCが無いので、起動時にntpdateかまさないと2010年1月1日から始まってしまう。
  • /var/logがtmpfsなので、ログが毎回消える。(fstabから外せば直るが)
  • CPU兼GPUのA10が熱い。要らなくなった互換機マザーのサウスのヒートシンクを貼った。
  • けれど、それでも熱い。クロックを下げたいところ。



  • この性能でArduinoのPORT叩きは完全なるオーバースペックだと思うけど、たぶんどんなに巨大なスケッチ書こうとも メモリー足りるし、へこたれないと思う。その気になれば、NEON/vfpフル回転なスケッチも書けるよ。
  • ていうか、こいつ自身がArduinoになる使い方じゃなくて、USBの先にAVRのArduino繋いで、開発できるよ。
    • (Arduino IDEは最初からインストールされていました。)

結論

  • もう、ArduinoとかDueとか、もどきとか、mapleとか、GR-SAKURAとかmbedとか、全部要らないー(甘い贅沢 by MEG)
  • 最初からLinuxが入ってるなら、あとは何も要らない。
  • 結局、Cortex-Mなマイコンって、何に使うつもり?Linuxが動くとでも?
  • どれもLinux動かせないしRTOSなんて中途半端。


つまり、今まで1万円〜2万円以上していたLinuxボードが、Arduinoと同じスケールで使えるようになるんだったら Arduinoに位置していたプロトタイピングツールの存在価値は一挙に薄れてしまう。

  • 消費電力と基板サイズが今のところネック。価格的にはRasp-PiとArduinoは同格だし、ARMなArduinoになると逆転してる。
  • そもそもARMなArduino(Dueのこと)の存在価値はあるのか?Linuxが逆立ちしたって動かないのに。





pcDuino のコンパイル速度

  • ベンチマークは例によって、jedという軽量テキストエディタのビルドタイム。
  • 自分が使っているjedは、VineLinux4.2に付いてきたjed_ja(EUC,SJIS OKな改造版)だけど、
  • 単にコンパイルベンチするのであれば、apt-get source jed で取ってきて普通にtime make するだけでOK.
  • なんでjedをコンパイルベンチに使っているかというと、時間が適度なことと、常用するエディタなので、必ず1回は 新しいターゲットでビルドする必要があるから。
  • pcDuino(Cortex-A8 1GHz / microSD 16GB class10)
    real    1m17.050s
    user    1m4.380s
    sys     0m3.490s
  • intel x64 (Core2 2.5GHz程度だったと思う。違うかも?) makeの-jオプションはいれずにシングルスレッドでビルド。
    real    0m17.860s
    user    0m16.480s
    sys     0m1.068s
  • arm-linux On QEMU (ubuntu13.04のLXC+QEMUを使ってお遊びで導入したARM-Linux。HOST PCはおそらく上と同じ奴)
    real    2m26.298s
    user    2m15.752s
    sys     0m7.588s
  • 結果、Core2に4倍くらい差をつけられている。けれどクロック差やIPC(1クロック当たりの命令数)を考えればpcDuinoは結構頑張っている。
  • 次回は、intel PC側のCPUバリエーションをいくつか用意していろいろ比較してみよう。(全部x64だけど)





PinguinoX.4

  • pcDuinoはちゃんとセットアップを完了して玄箱からリプレース終了した。
  • おかげで、玄箱のHDD音とファンの振動から開放された。
  • Postfixとdovecot(鳩小屋)のMaildir設定が最後まで虎ぶっていたが、なんとか解決。
  • ntpdateは良いネット環境ではどのubuntuも起動時に時計合わせするようだ。(ntp.ubuntu.com)
  • けれど、ADSLのPoorな環境では(というかNTPパケットが相互に通らない環境では)時計を合わせてくれないので難儀した。


まあそれは置いといて、最近はPinguinoX.3を卒業してX.4を使うようにした。

  • あと、forum.pinguino.ccも拾い読みするようになった。
  • そしたら、ADKの話題が出ていたので、早速Pinguinoを立ち上げて、exampleを試す。
    D:\PinguinoX.4\examples\09.Interfacing\Android
  • しかし、ビルドしてみると足が出ていた。
  • USB Host STackが意外とでかい。スケッチのバイナリーサイズは50kB強あるし、SRAMも12K以上ある。
  • よって、MX220F032Bには逆立ちしても入らないっぽい感じ。


  • ・・・Mchipのサンプルだと32kBに入ってたのになー・・・。
  • ところで、PinguinoのUSB CDC StackとHOST Stackのソースは何処に?
  • ソースを探す旅に出よう。





pcDuino:RAMLOG

ログ・ファイルをRAMに置いてシステム・パフォーマンスを改善する方法

  • http://sourceforge.jp/magazine/08/07/18/0047251
  • pcDuinoでは元々/var/logはtmpfsだ。
  • だがそのままでは、サーバーとして長期運用するのは難しい。設定を変えて再起動するたびにログが消去されるのは困る。
  • /var/logへの各種log書き込みはけっこう頻度が高いので、普通にmicroSDに吐かせるとすぐに寿命が来るだろう。
  • だから、RAMLOGのようなものは必須だ。


  • logrotateに対応して欲しいな。





pcDuino:コンパイルベンチの続き

  • jed(軽量テキストエディタ)のコンパイル時間計測結果は、こんな感じだった。
    pcDuino(Cortex-A8 1GHz / microSD 16GB class10)real 1m17.050suser 1m4.380ssys 0m3.490s
    model name : Pentium(R) Dual-Core CPU E5200 @ 2.50GHzreal 0m20.738suser 0m17.272ssys 0m2.904s
    model name : Intel(R) Celeron(R) CPU G550 @ 2.60GHzreal 0m14.441suser 0m12.192ssys 0m1.908s
    model name : Intel(R) Core(TM) i3-3220 CPU @ 3.30GHzreal 0m6.331suser 0m5.560ssys 0m0.480s
  • E5200って、今となっては遅いのね。
  • 自分の頭の中では結構速い部類になってたのは、おそらくCore2世代で時間が止まっているからかも知れない。
  • 一応全部ubuntu+gcc,pcDuinoのみubuntu12.04、他は13.04
  • 計り方はmake clean;time make; なので結構いい加減な値かも。HDD性能も全部違うし。


  • すでにお察しかと思いますが、intelのCPUはどれもコスパの良い安物ばかりチョイスしています。





Due VGA

日曜エレクトロニクス(日エレ)

  • Due用のVGA出力ライブラリ、あるんだ。
  • カラー出力もOKみたい。
  • しかも漢字出てるし。


しかしあれだな、HDMI出力が付いてLinuxも動くボード(Rasp Piとか)が2500円で、
方や、頑張ればモノクロSVGA出力が出来るDueが5000円くらいという混沌の中で
人はどちらの基板に価値を見出すのだろうか(BGM 地上の星♪)







<前の月次の月>