2010-11
2010-10← →arm_blaster →ARM armon stm32f103 AVR/PIC両用ライター usbシリアル変換 usbキーボード 簡易ロジアナ、赤外線リモコン信号観測
11月:
先月のまとめ
- ATtiny2313のJTAGファームウェアが2048バイトに収まって、なおかつAVRライター機能も残せた。不思議だ。ドラえもんのポケットか?
- コードを小さくするコツは、gcc-3.4ベースのWinAVRを使うことと、コンパイラのレジスタ割付け最適化が破綻しないようにすることだ。
- 破綻した(つまりr16〜r31にauto変数を割り付けられなくなった)ときには、大量のスタックsaveが発生するので、極力変数を使い回すとか、register宣言側のグローバル変数にしてしまってauto変数を消費させないのがコツだ。
- しかしWinAVRは8bitCPUに対する神懸り的なコードを吐くCコンパイラであることに疑いの余地は無い。
- "reg <<4 "を専用命令に落としやがった。
今月のテーマ:
- ARMにも飽きてきたので、Androidの勉強でもしようと思う。(なんか中華Padが消滅中らしいので、流行を周回遅れになる)
- iPadというかObjCは生理的に受け付けられない。というかMac持ってないし。
Android-x86
- froyoを自分でビルドしてみた。
- 敷居は低い。ubuntu10.04が手元にあるなら、3時間(放置)コースくらい。
- SDKのエミュレータ代わりには使えるかも。
- SDCARDをマウントさせるためには今のところSunのVirtualBoxを使うしかない、
という結論になってしまった。*1- Voldがなぜvmware-playerの/dev/sda2をマウントしてくれないのかはずっと謎のまま・・・。
- VMWare Playerで使えるisoを公開しています。
read more : Android
Cortex-M4
NXP
- http://ics.nxp.com/products/lpc4000/lpc43xx/
- 150MHzのM0とM4が1つづつ入っている。
- M0はペリフェラルに専念させてM4(FPU入り)でDSP処理を行うような用途。
- なんでM3ではなくM0なのかは分からなかった。
- USBはHighSpeed , OTP Key StoreとAES128が付いている。
- Cacheは使わないんだ・・・。
Google、Chrome OS採用の自社ブランドノートを今月発表?
Engadget
- 少量出荷らしいけれど。
- 英語キーボードなら買う。
- 日本語キーなら、いらない。
- ところで、Chrome OSっていうのは、現行のAndroidから、Chromeブラウザ以外を(見かけ上)取り去って、
- 全てChrome上で操作できるようにしたMIDデバイスという認識でいいのかな?
なんか実験的な製品だな。
なにをやりたいのか良く分からないけれど、
- intelベースではなくARMベースのNetBookのようなもの。
- Atomより電池の持ちがよくて、起動も速い。重さも軽いはず。(理論的にはね)
- ブラウザーが内部にレンダラーを持っているので、X Windowとかとにかく外部にWindow Managerのようなものは要らないしオーバヘッドになる。
- ブラウザー上のJavaScript(や他のScript)で全部事足りるならば、ブラウザー外にコントロールパネルやアプリケーションは要らないし、(後からインストールするものが増えれば)それらはセキュリティホールになる。
- Javaも要らないなら、JavaVMも要らない。
- それはそれでもいいけれど、ARMベースのNetBookのようなハードウェアが1個あれば、その上でubuntuを走らせたりAndroidを走らせたり、ChromeOSを走らせたり自由に出来るはずなんだが・・・。
- だったら、KMC Staff blogにあるように、ubuntuカーネル上でchrootしてAndroidを動かすのが、一番汎用性があるような気がする。Marketアクセスは無理だろうけれどね。
- AndroidのブラウザーはChromeなんだから、ChromeOSって一体なんなんだろうと思ってしまうわけ。
STBEE(大型)ユーザー発見!
なんかMZ-80Kの偉い人のような気が・・・
- http://blogs.yahoo.co.jp/nagusa_kei/51013209.html
- MZ-80Kには大変お世話になりました。
ここから引用
我々老兵は、昔からの主義で、デバッガーと称するツールは使わない。 使うのは、せいぜい データの打ち出しprint()で十分だ。 デバッガーに頼るプログラマーは思考力・課題分析力が弱い・・ それは、少し言い過ぎか・・
- 「デバッガーに頼るプログラマーは思考力・課題分析力が弱い」とは限りません。
- 優れたデバッガーに頼るのは時間短縮になり、良いことです。
- タコなデバッガーに頼るくらいなら、自分でデバッガーを作ります。
- でも、そもそもUSBのリアルタイム応答をデバッガーでステップ実行追っかけ出来るわけないんだよねー
- 1mS以下の時間で人間がデバッガーを操作出来るならやってみろ、って感じだ。
- そういうのデバッグしたいなら、v-usbのソースに書いてあるようにシリアルprintを埋めるしかないんだよねー。
- ARMとかSTM32くらいの速度があるなら、シリアルprintを内部RAMで強力にバッファリングしておいて、超高速なSPI(20MHz)くらいで外に出すといいね。
Android-x86 NDK
- って、あったんだ。(去年のだけど)
- froyoでも使えるのだろうか???>謎
- ゲームソフトがガンガン・ネイティブになったら(x86で遊べないので)困るなぁ・・・(ソース公開されるわけないからリコンパイルできない)
- もちろん、ARMコードをQEMUのようなエミュレーターで動かせるなら(遅いなりに)動くのかも。
- 仮にSH4とかMIPSとかのアンドロイドが出てきたとしても、NDKとかサポートするの面倒だろうなぁ・・・
過去の例では、WindowsCEが出たときに、CPUがSH3,SH4(SHARP,hitachi),MIPS(NEC),ARMと4種類のCPUをサポートしていたし、
- Windows-3.5,NTのときも、x86,itanium64,MIPS64,PowerPCまでサポートしていた。
- 今残っているサポートはx86とamd64しかないし、WindowsCEはARMだけになった。
- WindowsCE(WindowsMobile)自体、ほぼ消滅しているし。
- そういうわけで、AndroidのMIPSやSHは消滅の予定どころか、始まってさえいない。
これはひどい:富士通FM3マイコン
富士通セミコンダクター、ARMコアに主力製品をシフト
〜FM3ファミリ第1弾44製品を11月下旬からサンプル出荷
- Cortex-M3がFM−8/7/11の後継機種だって?
- なんというオッサンホイホイ。
- FR-60は消滅かよ。
Flashで、バッテリー2時間減少:MacBook Airテスト
Wired
Flashをインストールした場合の最長記録はわずか4時間だった。 一方、Flashを削除した状態で同じウェブサイトをSafariで読み込み、 CPU食いのFlash広告の代わりに画像の広告が表示されるようにすると、 MacBook Airは6時間2分動作し続けた。
- これが本当なら、地球温暖化を食い止めるためにまずすべきことはハイブリッドカーやエコ家電を購入することでは なくて、全世界のWindowsパソコンからFlashをアンインストールすることだ。
- ぜひMicroSoftには次回のWindows UpdateでFlashを(地球に)悪意のあるアプリケーションと見なして駆除するようにしてもらいたい。
- とはいえ、Flashアニメを見なくとも、Youtubeやニコ動のflvとかmp4を見てるんだったら電力消費は同じことなんだけどね。
- じゃあパソコンを禁止するしか。
有機ラジカル電池
これって凄いことなのかな。
- http://k-tai.impress.co.jp/docs/news/20101105_404828.html
- http://www.yamaguchi.net/archives/000752.html
- http://journal.mycom.co.jp/news/2010/11/05/104/
- リチウムを海外から調達しなくても良くなるんだ。
- 曲げたりも出来るらしい。
試作した電池2つを消費電力9mWの携帯型音楽プレーヤに取り付けると, 30秒で充電して80時間駆動できる。4個使えば100Wのパソコンを40秒間駆動することも可能だ。 その間にデータをバックアップできる。
- まるでSFみたいだ。
- こないだのPRIMEVAL(海外ドラマ)の1場面で
- 懐中電灯の電池を直列に繋いだだけで、テーブル型の未来コンピュータ(こんなやつだった)を短時間動作させる、なんていうことは可能だったんだ。
- その割には、それを最初に操作していたヘレンは、車から取り出された大量の鉛バッテリーを直列に繋いでいたようだが・・・(ここだけローテクなんだな、時代的には逆転してるはずなのに)
- このテーブル型コンピュータは、液晶タッチパネルを画面と垂直方向になぞると立体映像が出てきてたよ。iPadのパロディなのかな。
- しかし、0.7mm厚の500円玉で5mAHということは、その100倍の厚さにして、7cm長さの単2電池風にスケールアップしても 500mAHしかないわけだから、Li-ion電池にはまだ届いていないのかな?
- 0.7mm厚を2枚でmp3プレイヤーが80時間駆動できてるんだったら、充分実用域だし、充電時間がたったの30秒で済む ならリチウム電池に置き換えるメリットはあるように思える。
- あとは充放電サイクル回数と寿命がどれくらいあるかという問題だけど
- 充放電1万回って、性能高すぎ。
Java消滅の危機。
- http://www.itmedia.co.jp/enterprise/articles/1011/11/news064.html
- ついでにOpenOfficeとかVirtualBoxとかも最終的には滅びてしまいかねない。
- OSSを育てる企業があるかと思えば、潰す一方の企業もあるのだな。
- ひとえにOracleは金に強欲すぎると思うんだ。
- 育てると言うことをしないで、刈り取ることだけをやろうとしている。
- まあ、高い金を出してSunを買ったわけだから。
Linuxカーネルを高速化させた233行のパッチ
ミラクル
- http://slashdot.jp/linux/10/11/21/0354238.shtml
- http://gihyo.jp/admin/clip/01/linux_dt/201011/18
- 動画を見た限りでは、かなり軽くなっている。まるでWindowsVistaからXPにダウンアップグレードしたときみたいだ。
- カーネル2.6.38を待て、ってことらしい。
- 恩恵を受けるのはデスクトップだけなのかな。それは残念だが。
Android-x86 に関する1つの結論
- 古PC再生用のOSにはなりえない。ハードウェアを選ぶ。というより、リアルPCで全然動かないじゃん>generic_x86.iso
- Androidアプリ開発に使えるかどうかは未確認。たぶんできるんじゃないかな。(Javaだし)。NDKは駄目だが。
- 解像度がSVGA固定だったり、90度回転すると非常に使いにくい状態になったりする。変え方が分からない。
- [ALT]+[F1]でrootになれるんだけど、Linuxとしてはものすごく使いにくい。etcがsystem/etcだったり、/data/とか/sdcard/以外は全部read onlyなファイルシステムになっている。grubオプションの書き換えすらできない。(/grub/はマウントされていない)仮想CDからinstallerを起動した状態でない限り、絶対に素の/dev/sda1が触れないような仕組み。
- 古PC再生用の(フリーな)OSが欲しいなら、軽量化したubuntuがベストかな。ミラクルパッチに期待。
read more : Android
vectorのAndroAppマーケットについて。
- http://androapp.jp/
- ここにアクセスすると、vmwareで動いているAndroid-x86にて、アプリをダウンロード出来るようだ。
- ほとんどが無料アプリになっている。
- 有料アプリの場合、どのような支払方法になっているかのヘルプを見つけられなかった・・・。
- というか、まだ有料アプリは登録されていないのかな?
- 現在はプレオープンなので無料アプリだけ。12月から正式オープンで有料アプリが登録されるらしい。
- CPUがARMでないせいかどうか(特定の機種縛りがあるのか)分からないがインストールできない(適合しない)アプリも存在した。
そのまえに、
- vmwareで動かすことの出来るAndroid-x86は、当然ながらグラフィックチップ直叩き出来ないし、ホストOS側のDirectXやOpenGLを呼び出すような高度な連携は存在しない。
- OpenGLの実装はソフトウェア処理になっているか、あるいは未実装なのだろう。おそらく。
- そういうわけで、OpenGLバリバリの3Dゲームが動くことを期待してはいけない。
- またCPUがARMである前提のNDKを使ったアプリも当然動かない。
- と、ぐだぐだ言う以前の問題として、ビデオがVESAエミュレーションで遅い上に、16ビット(65536色)のフレームバッファなので、JPEG画像やyoutube動画の見栄えは、だいぶひどいことになっている。(色落ちが目立つ)
しかし、Vectorの無料アプリがかなり試せることが分かったので、
- シャープのキーボード付き端末IS01を8円/月払いで買おうという物欲を抑える役には立っている。
Androidに関するもう1つの結論
- 結局のところ、isoファイルからインストールするよりも、
- ビルドして出来上がったディレクトリをそのまま別のLinuxのディレクトリにコピーして(ビルドマシンが同一ならコピーすらいらない)
# chroot /mnt/android /init
- で起動したほうがいろいろいじりがいがあるらしい。
- 少なくともchrootする前ならread only filesystemではないし、元が普通のubuntuとかなのでいろいろとツブシがきく。
- chrootする前なら普通にubuntuやlinuxとして使える。
ただし、Voldのある非互換問題(@)のために、Linuxカーネルに少しだけパッチする必要があるらしい。(参考 KμCスタッフblogさん)
- Chromeは携帯用のブラウザーとしてはとてもよく出来ていると思う。
- いわゆるJavaのアプリ(apk)は、これといって欲しいものはないような気がした。
- Android携帯端末自体が、PCにくらべるとほとんど何も出来ない(自由度が無い)ために、アプリ(apk)でそれを補うわけだが、あんまり便利には感じられないし、ゲームソフトやユーティリティなども無料の範疇にはそれほど特筆すべきものが見つけられなかった。
- 結局、昔に一過性で流行ったPalmTopとかWindowsCEと同じような一過性の暇つぶし余暇ソフトで終わってしまうのか。-->2〜3年で廃れる。
- あるいは、Android携帯端末やiPhoneがないと生きていけないほどに我々の生活を支配するようになるのか。-->現実問題、通行証を含み全てが端末認証になったり、通貨が電子マネー限定になったり、教科書がデジタル限定になったりした場合には、それ用の端末に強度に依存して暮らさなければならなくなるだろう。
- 正直なところ未来は分からないが、少なくとも今の自分は(PCには強く依存しているけれど)携帯電話は単に所持しているだけで全くといっていいほど使ってないし、Android端末もiPhoneも持っていない。持とうとも思わない。
Androidの正体
EE Times
- http://eetimes.jp/article/22689
- 古い記事だけど、JavaのバイトコードとDalvik VMの違いが書かれている。
- これはどうでもいい話
- Android-SDKのARMエミュレータはなんであんなに遅いんだろう。
- x86上でARMのエミュレーションを真面目にやっているからではないかな。
- 通常、あるCPU上で別のCPUをエミュレーションしようとすると、速度的に30倍くらい遅くなる。
- つまり、別のCPUの1命令を実行するためには平均で30クロックくらい消費してしまうということだ。
- これをある程度克服した例が1つある。それはTransmetaのCPU、Crusoeだ。
- CrusoeはVLIWなCPUだが、on timeでx86のコードを自分のコードに翻訳して走る。
- 結果的に、800MHzのCrusoeは、ほぼ同程度のPentiumIII相当で走っていた(ような記憶がある)
- ただし、実行しはじめてしまえば遅くは無いけれど、そのまえの翻訳時間がレスポンスの遅さに直結してしまい、
- 「もっさり」という表現があてはまる。(これはJavaのJITでも同じことだ)
- 残念なことにPentium4に対し、消費電力面だけで優位性があったCrusoeは(つまり性能面ではintel CPUにかなわなかったことになる)、その後のPentium-Mとintel-CoreにモバイルCPU市場を完全に奪われ、消えていった。
*1 あれは断じてOracleのものではない。名前だけ付け替えればよい、なんていうものじゃないと思うんだ。