2012-09

2012-08 FM3 RX62N SH2A Android PIC32MX 


9月


持ち越し案件

  • USBオシロみたいな奴。 --- やっとできた。アナログのフロントエンドがまだ。
  • MinGWクロスgccのビルド。 --- ちゃんと出来たんだけど、最新版のgccだとzlibでこける?
  • LPC1114FN28でLチカ ---Lチカ+UARTエコーバックまで。LPC1114FN28
  • STM32F4で何か ---makeによるVCPのビルドはOK。動作確認はまだ。



10月

今月のネタ。

  • (1)各CPUのMinGW-gccでもビルドしてみっか。(気が向いたら、ね。)
  • (2)PIC32MXに手を出すかどうか思案する。(手を出すとは言ってない)
  • (3)アンドロイドのアプリでも作ってみる?(これもネタはないのだけれど端末買ったからなぁ・・・)



11月

  • (1)今ごろになってFT2232Hをいじり始める。
  • (2)またまた赤外線リモコンに逆戻り






12月

  • (1)まだFT2232Hでpic32progを動かしていない。
    • pic32progのソースは読んだ。USBのVID:PIDがOlimex決めうちになっているところまで、読んだ。
    • それからMPSSEのBitBangは、まずコントロール転送でモードを切り替えた後、バルクのEPに対して、 [コマンドコード(1byte)+パラメータ(可変長)]の繰り返しのようなコードを送っているというところまで読んだ。
  • (2)赤外線リモコンは、ファームは完成。1台目は無事実用に供している。2台目は配線途中で放置。
  • (3)Windows8に移行した。メモリーしこたま積んで仮想マシンを一杯走らせて遊ぶつもり。まだメモリーは買ってない。お年玉か?
    • というかおまえガキなのか?






1月

  • 案の定、デスマが続いている(ステマ、じゃない。)
  • お年玉誰もくれないので、安いときに(底値で)16GBを2セット買った。
  • でも、2台のうちの1台は未だにWindowsXPなので、13GBくらいは電気食ってるだけ状態(Gavotte入れるとハングするんだよ)
  • Windows8がもう1ライセンス手に入りそう。
    • ありがとうございました。>M様
  • 今月こそは、放置プレイ状態のpic32mxを使おう。
    • とりあえずFTDI互換デバイスにして、OpenOCDが使えるようにしてみる。(なんという卵鶏(逆)プレイ。)






VisualStudio(2008)罠:4Core有ってもCPU負荷25%:並列ビルドして紅の件

  • なんかビルドおせーなーとかで、[SHIFT]+[CTRL]+[ESC]すると、intel CPUの4コアのうち1コアだけしか仕事してない。
  • どうやら、cl.exeのコマンドラインに /MP オプションがいるらしい。(/Gmとは両立しない)
/MP[n] はコンパイル時に最大で 'n' 個のプロセスが使用されます
/Gm[-] 最小ビルドを有効にする 
  • こんなん知らんがな
  • 普通にgccならmake -j 4 とかやれば済む話なのに。
  • もひとつ、DirectXのincludeやlibを見つけてくれないときは、
  • 各個のvcprojファイルに追記したりせずに、
  • 「ツール」->「オプション」->「プロジェクトおよびソリューション」->「VC++ディレクトリ」にて、
  • インクルードファイル、ライブラリファイルのパスにD:\DX10SDK\includeとかD:\DX10SDK\lib\x86 とかを追記するよろし。
  • これって、常識なのか?・・・非常識?


ちなみに、コマンドライン派な人のための補足としては、

  • VisualStudioのsolutionファイル( *.sln )をコマンドラインから指定してビルドできる。
    vcbuild.exe myproject.sln "Debug|Win32" /project main
  • とかそんな感じ。
    vcbuild.exe myproject.sln 
  • だけでもいい。
  • cleanするときは
    vcbuild.exe myproject.sln /clean
  • vcbuild.exeは、vs9をインストールしたディレクトリの/vs9/VC/vcpackages/ あたりに存在する。
  • slnやvcprojはGUI版と同じなので、ビルド完了したら、GUIからデバッグとかも可能。
  • VS2010ではまだ試していない。(vcxprojのことをよく知らない。)






WinRT (Windows8 for ARM)

  • 何がいいのか分からない。
    • ARMに移植してみたけれど、メリット無かったね。
      • 遠い将来、ARMがintelより性能上がって主流になったときのための投資?


Atom搭載Windows8機と比較して、

  • たいして安くも無い。
  • たいして軽くもなってない。
  • Win32アプリが全く使えない。(し、Metroのほうも自作や移植も出来ないっぽい感じ)


Android(例えばキーボードを取り付けられるASUSのTransformer機とか)と比較して、

  • メモリーが2Gもいるのか?
  • 高い。(これはMS-Officeの価格が含まれるからなのか???)
  • マーケットアプリの充実度でAndroid陣営に対して明らかに負けている。


端的に言うと、これのどこがいいの?

  • ゲーム機に例えると(例えにくいけれど)、面白いソフトの揃ってないゲーム機(って、何があったっけ)

例え話として、ここにPS Vitaがあったとしよう。

  • PS Vitaはまだまだキラーコンテンツがないけれど、とりあえず過去のPSPソフトが遊べるようになっている。(高度なエミュレーション技術によって)
  • WinRTはまだまだキラーコンテンツがないばかりか、過去の資産もまるで使えないゲーム機。
  • 使い道が思いつかない。
    • すこしだけ安くて、すこしだけ軽い(けれどx86アプリは動かない。Officeのみバンドルされている)Netbookと比喩しておこう。
    • まるで、昔のWindowsCE機みたいだ。(Pocket Wordとか Pocket Excelとかを思い出してくれ。)





何をトチ狂ったか・・・

秋月でポチる。

  • PIC32MX 220F032B (220円)
  • LPC1114FN28(110円)
  • PIC18F25J50(230円)

あれ?性能と価格反比例してないかい?

  • それはまあ、良いとして、PIC32MXのエラッタ怖い・・・。バケラッタ(ちょっと違う)





PIC32MXを手に入れた。

/ATMEL_AVR/jpg/pic32mx220.jpg

電子工作室 を読んで勉強

/ATMEL_AVR/jpg/pic32mx220-1.png /ATMEL_AVR/jpg/pic24FJ64GA002-1.png

/ATMEL_AVR/jpg/pic24FJ64GB002-1.png

  • Flash32kB,SRAM8kB。どっちもMIPSにしてはかなり少ない。
    • PIC24Fよりも少ない。PIC24FJ64GA002はFlash64kB,SRAM8kB。
  • クロックは40MHz MIPS16e命令も使えるらしい。
  • KSEG0,KSEG1に分かれていて、KSEG1が非キャッシュ領域だ。(この構成はMIPSではよくある、ちょっとした悪夢だ。)
  • この僅か16byteのキャッシュの目的は、単にFlashROMの2Waitを隠蔽するものなのか。
  • 消費電力は0.5mA/MHzらしいので、40MHzだと20mA。3.3V入れるなら130mW程度。


一言で言うと、速くなっただけのPIC24Fだな。(32bit化されてるけど)


問題としては、

  • USBを使いたいときは何MHzで動かせばいいのか?水晶は何MHzを用意すればいいのか?
    • FPLLIDIVとUPLLIDIVが独立している。どちらも、
    • ÷1,2,3,4,5,6,10,12 から選択できる。
    • つまり、水晶は逆算すると、4M,8M,12M,16M,20M,24M,40M,48Mのなかから自由に選んでいい。
    • そうして、基準4MHzが生成された後、USBは12逓倍して48MHz,システムクロックはPLLMULTで15〜24逓倍して さらに÷1,2,4,8,16,32,64,256の分周を入れて作れるようだ。(40MHzならPLLMULTで20倍して÷2という感じか)
  • 内蔵RC発振でUSBは使えるものなのかどうか。
    • クロック生成部を見た限り、内蔵RCからUSB PLLへの接続はなさそう。
  • 動作クロックを落とせば消費電力はどの程度減らせるのか?
    • データシートを信じるなら、0.5mA × CPU MHz だ。


たぶん、こんな感じだとICSPもPIC24Fとだいたい同じなんじゃないだろうかと推測する。

  • 焼きマニュアルが必要だ。
    • 見てみた。"MCHP"でICSPモードに入るところは一緒だ。 --- PIC24Fは"MCHQ"だった。
  • PIC24Fの焼き用に、PIC24F命令を挿入しているところを全部MIPSに書き換えないとだめなとこも一緒か。
  • 焼きマニュアルにICSPとJTAGの説明が入り混じっていて、大変読みにくい。0点。
    • それだけじゃない。PIC32MXのICSPは4wireのJTAGを2wireでエミュレーションしているので、PIC24Fと全く違う。2wireなので遅い。
  • 元々、JTAGのTAPの仕組みをよく理解していないので、それが2wireになったらもっと複雑で分かりにくい。
    • ICSPなのにTAPが存在する感じ。





pic32prog

  • googlecodeからDL出来る。
    D:> svn checkout http://pic32prog.googlecode.com/svn/trunk
  • あれ?gitじゃなくてsvnなのか。
  • ソースは解りやすい書き方で短い。これは良い。
    • FT2232のmpsse部分のソースもある。比較的手を入れやすいといったところか。
    • FT2232の場合はHID(hidapi)ではなくてlibusb-w32から叩くようになっている。
    • 配布制限のあるFTDI社ドライバーやlibftdiなどは使っていないので安心だ。
  • PIC18F(pic18spx)から書けるようにしたいなぁ。
  • FT232とかFT2232とか持ってるけど、どうしようかなぁ(配線が面倒い)

adapter-an1388.c (HID bootloader)というのはMicroChipのHIDローダー経由で書くってことなんだろうか?

  • まだよく読んでない。





PICKit2

ちょっと古いけど、ソースが公開されている。 --- わりと最新のものまである。


  • PICKit2はUSB-HIDデバイスだ。なのでドライバー要らない。infも要らない。Win8でもOKだ。
  • そして、pic32progのソースにはlinux,mac,windows用のhidapiがある。
  • つまり、なんちゃってPICkit2をでっちあげるとpic32mxに書き込む環境は作れるような気がした
  • まだわかってないこととしては、FT232とかFT2232でPIC32に書くための配線の仕方だな。果たしてICSPでかけるのだろうか?謎。


read more : PIC32MX





Win8RTMをいろいろいじってる。

XPから乗り換えてもいいかどうかの検討材料にするため。

MBRにインストールして、MBMブートセレクタでXPと共存

  • するためには、インストールDVDをUEFIブートしないこと。
  • SandyBridge世代のマザボくらいになると、DVDをUEFIブートするか普通にブートするか選べる場合がある。
  • UEFIブートしてインストーラを立ち上げてしまうと、ハードディスクはGPTパーティションが強制される。
  • というかフルEFIな環境(Macとか)ではそもそもGPTでないとブートしないので、これはしかたないかな。


  • 古いCore2マザーではUEFIブートが載っていないのでMBRでフォーマットしてMBRブートになる。
  • MBRブートのときでも先頭パーティションはシステム予約で350MBほど取られる。MBMでWin8を起こすときは先頭パーティションを選択すれば起きる。
  • ということは、XPを入れる場所は3番目のパーティションに限定される。(2番目がWin8だとすると)
  • HDDを2台以上繋いでいればXPを2台目HDDの任意パーティションに置く方法もOK。(最近はSSDなんかも普及しているし)


  • しかし、いずれにせよWin8を常用するのは考え物だ。しばらく(6ヶ月くらい)はWin8は64bitのお試し環境くらいにしか考えていない。


Classic Shellは必須。

  • Metro UIに並んでいるタイルは、片っ端から右クリックしてアンインストールに放り込む。
  • 枠が太いのはRegEditで弄って
    "PaddedBorderWidth"="0"
  • で直る。

フォントが汚い。

  • XPと比べてデスクトップフォントが汚いってのは、どうよ。(ギザギザしてたり、太さがおかしい。何のフィルタリング処理もしないでドットを単純拡大した感じ)
  • XPで使ってたMigMixとかRictyを入れてみたけど、これも同じフォントなのにXPのデスクトップ表示と比べて明らかにギザギザで汚く見える。(これはClearTypeの調整を行なうと少し改善するが、副作用がある。他のフォントが逆に汚くなる)

Windowのテーマを選んだときはウィンドウ背景の色などの個別指定が出来ない。

  • ハイコントラストのテーマを選んだときは色の個別指定が出来る。
  • けれどもハイコントラストは不都合が多い。

Teratermを立ち上げた直後、必ず漢字変換モードになる。

  • telnetログイン時のアカウントとパスワードが全角で出てきてドッキリが味わえる。心臓に良くない。
  • まあこれはtelnetやめればいいのだけど、teraterm使うときは毎回漢字変換をOFFにしてから操作するのが面倒だ。

ISOファイルがクリックだけでマウントできるのは便利。

  • Daemon Tool が要らなくなる効果。


ところで、WindowsRTはほんとにやばい状態らしいな。

楽天Koboどころの話じゃなく本格的に。

  • 使い勝手悪いとかアプリが全然揃わないという問題以前に、根本的にARM版は遅いらしい。(何故かは分からないけれど)
  • WindowsCEのCEをアルファベット的にずらしていくとRTになるらしい。(2001年のHAL->IBMみたいな)


  • 昔のWindowsCEもちょっとした処理がすごく遅かったのを思い出した。


surfaceとか全く売る気が無いと思うし、MS以外のメーカーはWindowsRTなんか製造しちゃだめだ。

  • WindowsRTはintel(Atom)がこけたときの単なる保険だからだ。





るねさすRX終了のお知らせ

はいRX解散。

  • http://japan.renesas.com/press/news/2012/news20121023.jsp
  • RZはCortex-A9だそうだ。
  • 元々日本の半導体はファブレス空洞化してるけど、これはもはや日本メーカーが出す必然性ゼロ。
  • むしろるねさす解散のお知らせなのか?ピクピク。





FT2232H

  • ずいぶん昔に買っておいた苺のFT2232Hボードを配線。
  • USB-Bコネ、ポリスイッチ、Serial-EEPROMの3点をハンダ付けするだけで完成だ。
  • FTDIのチップはD2XXドライバーとか面倒なので触らないことにしていたのだが、
  • 今や、pic32progのコードを使えばlibUSB-Win32から簡単に触れる。
  • とりあえず、低速ロジアナ程度なら作れそうだ。


  • で、さっさとPIC32MXを焼くべきなのだが・・・脱線するする。





AVRで赤外線リモコン

read more : 赤外線リモコン

  • 追記:
    • sleep命令直前にport操作が必要なのですが、その設定値が間違っていました。
    • 修正前-- 0.5mA程度消費
    • 修正後-- 消費電流は安物テスターでは計測不能。
  • また、赤外LEDのOn/Offデューティ比を小さくすることにより、信号送出時の電流もかなり減ってます。
  • おそらくtinyClockのほうも同様の修正で消費電流を減らせます。





Windows8に移行してみたり

感想

  • OSとしての基本性能はたしかに良くなっている。起動も速くなっている。
  • だがしかし、UIデザインは大きく退化している。WindowsXPを通り越してWindows2000に戻ったようなのっぺら感がある。
  • さらに悪いことに、ハイコントラストテーマを選ばないとウィンドウ色のカスタマイズが出来ない。
  • ハイコントラストテーマでは、逆にいろいろ困ることが多くていささか閉口している。

せっかく64bitの最新OSになったのに、UIデザインのカスタマイズが出来ないなんて最悪だ。


  • メトロは一切使っていない。インストールしてまずやることは、メトロアプリのアンインストールとClassicShellをインストールすることだ。

Win8:バグのようなもの・・・

  • ウィンドウ枠線が太すぎる。細くするためにレジストリを弄るのだが、これがちょっとしたことで先祖がえりリセットされて太くなる。
  • DOS窓のフォントにMigMix 1MやRictyなどのTTFフォントを使えるようにレジストリを設定しているのだが、
  • このフォントが汚く表示される(TrueTypeなのにドットがガクガクしていたり、線の太さが揃っていないというかドットを単純拡大したようなフォントになる)
  • 少なくともWindowsXPでは、こんなに汚くならない。
  • MigMixやRictyのフォントサイズ指定がバグッている。24ポイントとかにしても小さくしか表示されない。
  • TeraTermで同様のフォントを指定すると、まあ少しはましに表示されているので、DOS窓の問題。


かといって、このままXPを使い続けていても、32bitの限界とか2TBの限界とか、いろいろ困るし。

Read more : Windows8カスタマイズ





Android-x86: ICS4.0-RC2.iso

  • 7月ごろに出ていたiso
  • すえん学録さんのページの通りにインストールしてみた。
  • RC1.iso , RC2.iso ともに、
    $ su
    # netcfg eth0 dhcp
    # setprop net.dns1 8.8.8.8
    にて、Webは見れるようになるものの、(プライベートWebサーバー上に置いたお試し用の)apkのダウンロードがいつまでたっても終わらない。
  • apkに限らず、どの形式のファイルも標準ブラウザでダウンロードしようとして全く終わらない。

ダウンロード終わらないのなんでだろー

  • sdcardが書き込めないのか? ?? ??? 原因がわからない。
  • google playアカウントの入力が出来ないのは、WiFiを起こそうとしているから、っぽい。WiFiはVMWareではOnにならないので・・・。

Android-x86、SDKのエミュより使いやすいんだけど、ICS以降になってapkのダウンロードで躓いている。

  • なんとかならんのか。





Ubuntu Server上のXをWindowsから使う。

  • なんでそんなことをやっているのかと言うと、JmeterのProxyをubuntuにやらせようという計画。
    • (つまりAndroidからWebへのアクセスのログを取って、悪さをするアプリとか調べる)
    • tcpdumpでもいいんだけど、読みにくいからね。


以下、自分用メモφ

  • まず、Ubuntu Sever本体は、Ubuntu12.10を使用。
  • vncを入れる。
    # apt-get install tightvncserver
  • Xを入れる。
    # apt-get install gnome gnome-session gnome-terminal xfonts-intl-japanese xinit 
    # apt-get install ttf-sazanami-gothic xfonts-a12k12 fonts-takao-gothic
  • vncserverの設定。
  • ファイル ~/.vnc/xstartup を編集
    #!/bin/sh
    unset SESSION_MANAGER
    xrdb $HOME/.Xresources
    xsetroot -solid grey
    gnome-session --session=gnome-classic &
    # Fix to make GNOME work
    export XKL_XMODMAP_DISABLE=1
    #
    gnome-terminal -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
  • 最後の行は無くても良い。
  • vncserverをuser権限で起動する。
    $ vncserver :1 -geometry 1250x950
  • ':1' は端末番号を1に固定。 geometryは好きなように指定する。


  • Windows(XP|7|8) からは、 RealVNCのようなソフトを入れて
    接続先ubuntuのホスト名:1
    パスワードvncserverをインストールしたときに聞かれたパス、あるいはvncpasswdコマンドで再設定出来る。

にて接続する。無事Gnome-classicが立ち上がればOK.





Windows8:フォントレンダリングが汚すぎる件。

  • 我慢耐えかねてMacType入れたよ。
  • MacTypeって言うくらいだからマカーな外国人が作ったのかと思ったら、作者は中華の人か。
  • プロセス単位でMacTypeのイネーブルを切り替えられるらしい。
  • Windowメニューとかもレンダリングが変わるので、ちょっと考え物かも。

で、MigMix 1Mとかのフォント入れて使ってるんだけれど、秀丸ではややましになったものの、

  • DOS窓は相変わらず駄目駄目だな。


  • TTFじゃなくてBitmapフォントのときはDOS窓でも綺麗にレンダリングされる(って当たり前か)
  • けれどWindowsのBitmapフォントをでっち上げたり加工するツールが皆無で困ってます。


  • ubuntu12.10のMonoフォントをWindows8に転送しようとしてみたんだけど、なんかこう、違うのしか入らなくてがっかり感大。




<前の月次の月>