2012-08

2012-07 FM3 RX62N SH2A Android


8月


持ち越し案件

  • USBオシロみたいな奴。 --- 実は済んでなかった。
  • MinGWクロスgccのビルド。 --- やってみた。簡単に出来る。
    • LinuxのクロスMinGW環境で頑張らなくても、いまや普通にWindows上で出来る。
  • STM32F4で何か --- とりあえず着手。
    • makeによるVCPのビルドはOK。動作確認はまだ。




MinGWクロスgccのビルド。

Building an ARM GCC Toolchain from Source

  • 上記サイトのとおりにやる。
  • まず、WindowsXPマシンを用意して、MinGWとMSYSの最新を導入する。
  • 次に、gccをビルドする場合に必須な外部ライブラリ、 gmp , mpfr , mpc を 順にMinGWにインストールする。
  • MinGW の(というかDOS窓の)環境変数 HOME の場所を確認しておく。
    • 未設定なら、都合の良い場所を HOME に設定しておく。 (例: set HOME=C:/MinGW/home/ とか)


  • 最後に、 summon-arm-toolchain.sh を起動する。
    $ bash summon-arm-toolchain.sh ~ arm-none-eabi
  • 最初の引数が、生成される場所 ( ~ は HOMEに等しい) なので、上記の例で言うと、
    C:/MinGW/home/arm-none-eabi/bin/
  • 以下に arm-none-eabi-gcc.exe などが作られる。
  • しかし、gccの環境パスはどうやら絶対パスではなさそうなので、arm-none-eabi/ ディレクトリを D:ドライブとか別の場所に移したとしても、その下のbin/ にあるgccのexeに実行パスを通しさえすればARM用のgccを利用できるようになる。
  • この方法(summon-arm-toolchain.sh)を少し応用することで、別のCPU( shとかrxとか)用のMinGW(win32素の)環境用の クロスgcc を容易に生成できるということが分かった。
  • 応用としては、
    # Version configuration
    BINUTILS=binutils-2.22      # 2.18
    GCC=gcc-4.7.1               # 4.2.2
    NEWLIB=newlib-1.20.0        # 1.16.0
    GDB=gdb-7.4                 # 6.8
  • などで最新のGNUに対応したり、
    # Advanced options
    PARALLEL="-j 5"                 # PARALLEL = "-j 5" for 4 CPU's
  • などで(Core-i5とかなら)高速ビルドできる。


感想:

  • 今のMinGW (MSYS)は、 gccを configureしたり make出来るようになったんだ。スゲー。






STM32F4-Discovery

https://raw.github.com/iruka-/ATMEL_AVR/master/web/upload/STM/32f4.png

  • STM32用のusb VCP(Virtual Communication Port)サンプルをMakefileでビルドできるようにしてみた。
  • 動作確認はしていない。
  • というか、これ、どうやってHEXを書き込めばいいの?
  • 普通に考えると、ST-Linkに対応したOpenOCDをビルドして、上のMini-Bコネクタから流し込むんだろうなぁーと予想してみる。
  • どうでもいいけど、この基板、ずんぐりむっくりで無駄に大きいんだよ。
  • もうちょっとスマートなデザインにできんもんかいね。
  • いろいろてんこ盛りらしいので、しかたないか。(まあ、1,650円だしね。我慢すっか)
  • ST-Microから落としてきたUSBサンプルの中に、ChaNさんのFat FSライブラリがオフィシャルで入っていてびっくりした。


とりあえず目標。

  • armbootを移植。
  • microSDを繋いで読み書き。
  • 気が向いたら、mruby(ムルビー)とか。(retro BSD とかでもいいんだけど)

Android-ADKやろうと思ったんだけどね。

  • 手持ち端末その1は、Android-2.3なんだけどADKのサポートがない。
  • 手持ち端末その2は、Android-4.0なんだけどUSB-Aコネクタ(host側)しか付いてない。(無駄にUSB-Aが3口ある)
  • つまり、ADKは試せないってこった。






楽天Kobo Touchをディスプレイにする

mjtの日記復帰計画

  • kobo touchはむしろ、e-Ink端末開発キットとして8000円で売り出すべきレベル。らしい。
  • それでも、端末としての使い道思いつかないんだけど。
    • 普通に快適なe-bookビューワーとしては使えんのだろうか?






中華CPU

中華padで使われるCPUのメモ 2012/05/08版

  • おそろしいことに、A10とかA13は$5らしいし(Mali-400内蔵で)、競合の石も$6とかそんな安さ。
  • もう日本の役割は無くなった感がある・・・。






秋月:中華STM32基板

一番安い奴がこれ

http://akizukidenshi.com/img/goods/L/K-05819.jpg


だけど50円追加で、Flash容量倍増(128kB)になる。


  • これなら、もうARMのDIP品が欲しいなんて言わないでいいし、基板起こす必要もないし
  • STM8S-Discoveryからひっぺがしたり、改造たりするより便利かも。

(というか安いし)


用途としては丁度Arduino Leonard(USB入りのATmega)の32bit版という感じか。

  • 任意のUSBデバイスになれる。
  • ATmega328よりポート数が多い。
  • 72MHzなので速度は充分。(ATmega328の10倍以上はあると思う)






STM32F4-Discovery続き

  • ST-Linkに対応したOpenOCDが動かない。
  • なんか、transportがjtagじゃなくてswd(swim?)なんだけど、
  • tclがそんなコマンド無いとか、transportが指定されてないとか、矛盾したエラーを言いやがる。


  • まあST-Linkなんか使ったことないし(そのST-Link部分を書き換えてAVRライターにしたことはある)。よく分からない。
  • Open sourceなんだから、自分でソース読んで直すとか、自力で解決しなくちゃならないんだけど、とにかく面倒。
  • 普通にFT2232がよかったなぁ・・・。(配線が面倒なだけ)

解決した。

  • まず、LibUSB-win32-bin-1.2.5.0.zipを入手して展開し、inf-wizard.exeを起動。
  • STM32F4-DiscoveryのVID,PID(=0483:3748)が出てくるので、STM32F4用にlibUSBをインストールしてしまう。
  • 次、ねむいさんの置き場にあるocd.tar.gzを展開。
  • openocd.exeの存在するdirにて、
    D:> openocd -s tcl -f board/stm32f4discovery.cfg
  • teratermでlocalhost:4444番ポートにtelnetして
    > init
    > reset init
  • もしくは、ねむいさんのflash書き込みマクロなどを含んでいるほうのconfigを起動。
    D:> openocd -s tcl -f tcl/target/stm32f4x_stlink_flash.cfg
  • こっちの場合は init , reset init は入っている。


前回うまく行かなかった原因は、複数のcfg(ボード定義とCPU定義とか)を読もうとしたのが悪かったらしい。(結果的に重複して読まれてた)






MZ-80Bをゲームマシン化 

  • MZ-80Bに8255繋いで、その先にSDカードだなんて、凄すぎる。漢だ
  • PICとかAVRとかARMの先にSDカード繋いでChaNさんのfat FSライブラリ借りてきて、「動いた」なんて言ってるの、お前ら甘やかされすぎ。





特集 チョコッとお試し! ARM32ビット・マイコン

トラ技9/10発売号

え゛?

NXPセミコンダクタ社が本誌のために特別開発! 

 DIPパッケージのCortex-M0 ARMマイコン

LPC1114FN28/102

http://www.nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/LPC1114FN28.html

  • Flash 32kB
  • SRAM 4kB
  • Cortex-M0 50MHz , 3.3V
  • ADC 10bit
  • JTAGなし。SWDのみ。
  • USBなし。 SPI,I2Cはある。

USBないんかい。興味なし。

  • なんだけど、11月号付録予定のこの基板にはUSB端子が付いている。 http://toragi.cqpub.co.jp/Portals/0/backnumber/2012/09/yokoku_3.jpg

そこで妄想・・・。

  • CP2102のような石が張り付いていて、Mary基板みたいにシリアルUSBブートできる。
  • CP2102に見える石は実は3.3Vレギュレータで、USBはAVR-USBばりにソフト実装している。←---- ありえなーい
  • USB-miniBコネクタは電源供給のみで、シリアルはピンヘッダーでPCに繋がないといけない。←----ボリ松(失礼)大喜び?

3番目が一番つまらない予想。




USBシリアル変換ICはProLificのPL2303だった。

  • http://toragi.cqpub.co.jp/Portals/0/support/2012/ARM/%E6%8B%A1%E5%BC%B5%E5%9F%BA%E6%9D%BF1b.jpg
  • 8pin?

でも、これトラ技買う必要あるんかいなー?

なんと苺で126円!

  • あと、開発環境とかもMARY基板触ったことある人ならCortex-M0で同じ。
  • DIP 28PINでピン数が少ないのと、SRAM容量が8kB --> 4kBに減らされている点に注意すればOKだ。

LPC1114FN28でUARTエコーバックサンプル






今日の反省会

USBケーブルのまとめ

  • 基本的には
    ホストPC(USB-Aメス) ← (USB-Aオス)-----ケーブル-----(USB-Bオス) → (USB-Bメス)デバイス機器
  • なはず。
  • USBケーブルは片側がAタイプでもう片方がBタイプになっている。


  • 長らく、PC側には普通サイズのAコネクタが使われている。
  • デバイス側の普通サイズのBコネクタはほとんど見かけなくなった。(プリンタやスキャナなどではまだ使われていると思う。)
  • mp3プレイヤーなどのデバイス側は大抵mini-Bが使われている。


  • ところが、最近のスマホとかではminiよりも薄いmicro-Bが使われるようになった。
  • スマホなどでは、ID端子をGNDに落とせばUSBホストになれるのでmicro-Bをホスト/デバイス/充電の全兼用に使っているっぽい。
  • そういうわけで、mini-Aやmicro-Aはほとんどお見掛けしたことが無いはずだ。


ところが、STM32F4-Discoveryの(STM32F4側)usb端子はmicro-Aだ。

  • 微妙にmicro-Bが間違って刺さってしまうが、端子面が逆なので通電しない。

micro-Aの罠に嵌った。






ADK2012

小ネタ(kako.com)

ADK2012の構造と解析 - 安価なcloneは作れるのか?


  • ADK2012って、まだ出てないArduino-Dueのことかと思ってたけど、違うんだ。
  • Atmel製Cortex-M3のCPUボードが内蔵されている時計だったんだ。(うん、初めて知った)


  • つーか、2.0になってAudioとか追加されてるけど、Audio要らないなら1.0準拠のままCPUだけCortex-M3という選択肢は有りなのか?


  • しかしアレだな、ADKのアクセサリー側は基本的にUSBホストであり、Androidに対してはadbと同じトポロジで、adbに間借りしてエンドポイントを作る感じなので・・・・
  • アクセサリー側からすると、こっそりadbそのものを仕込んでおけば、アクセサリーを動かしていると見せかけてAndroidをハック(デバッグとも言う)し放題じゃないだろうか?






AndroidSDK:intel AVD(仮想マシン)がHAXエラーを出す場合の対処。

  • 現在、Android2.3とAndroid4.0用のintel用イメージが用意されていて、それをインストールして実行した場合、
    emulator: Failed to open the HAX device! HAX is not working and emulator runs in emulation mode
    emulator: Open HAX device failed 
  • というエラーが出る人は、

Intel HAXMドライバーを導入していないのが原因。

  • <AndroidSDK>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.exe
    • 存在しない場合は、SDKマネージャーでDLする。
  • こいつを起動してPCにインストールする。
  • CPUのXDビット(Execution Disable)がサポートされている必要がある。されていないエラーが出た場合はBIOS設定を弄って有効にしておく。

これで、AVDの起動がかなり速くなる。






BWRの構造的欠陥

グリーンウッド

引用ここから----

BWRの過去の統計からいえることは今後福島級は全世界で25年以内に1回発生すると予想される。したがって今後の方針はBWRを再稼働するには格納容器トップフランジの冷却を可能にする事前水張り、ベントフィルター設置が必要となろう。そしてPWRは断層がないという条件でだけではだめでベントフィルターが必要となる。

・・・

代替エネルギーは石炭と天然ガスで十分まかなえる。地球温暖化は二酸化炭素は石炭や天然ガスを我慢して使わずとも縄文海進でわかるように自然現象だからいずれにせよ制御できない。出来ると考えたのは西洋の傲慢なのである。まず化石燃料で原子力の代替とし、これを暫時、再生可能エネルギーに置き換えてゆくという大方針はいずれ世界の共通の合意事項になるだろう。だからパニックになって国際競争力を失うなどと心配する必要はない。

ここまで----


はっきり言っておこう。

  • 原発が必要だと主張している人たちは、原発廃止が決定されることで発電所の資産がすべて負債になり、巨額の廃炉費用や廃棄物処理費用が掛かって困る人たちだ。
  • だから、40年寿命の廃炉を先延ばしにしたり、廃棄物を発電所内に溜め込んだりして、とにかく問題を先送りすることしか考えない。

しかし、いずれ炉の寿命は尽きて、そこで終わる。

その事実を無視し続けるのは不可能だ。






これは酷い:Windows8

  • 少し古いが、6月くらいのRelease Preview版を実在PCに入れてみた。
  • 前はVMWarePlayerに入れて動かしていたもの。
  • VMWareのときはWindowsLive IDが必須だったような気がしたのだが・・・実在PCに入れてみるとそんなことない。
  • 実在PCはLANの繋がらない場所に置いてあったため、WindowsLiveにLogin出来なかったのだが、ちゃんと使えた。


  • 仮想COMデバイスのマイコンをWindows8に挿してもドライバーを導入できない。
  • Windows7では問題なかったのに。
  • どうやら、Infファイルにも署名が必要になるように改悪されたらしい。(ひどい)
  • 回避するにはセーフモードのようなモードで起動して、未署名ドライバーを許容するオプションを入れてから導入するしかないみたい。
  • まるで悪いことしてるみたいで胸くそ悪いぜ>MSさんよー。
  • あと、Startメニューが削除されている大改悪に対抗するために、Classic Shellというフリーソフトを入れてみた。
  • MicroSoftは、どうしてこう、ユーザーいじめを繰り返すんだろうか?。シェア落としたいのか?協力してやるぜ。






Windows8で未署名のInfファイルを使用してデバイスドライバーを導入するには?

以下のページを参考にやってみた。


手順1.テストモードへの移行

管理者権限でコマンドプロンプトを実行し

bcdedit /set TESTSIGNING ON

を実行する。

手順2.「ドライバー署名の強制の無効化

[チャーム]>[設定]>[PCの設定変更]

>[全般]>[PCの起動をカスタマイズする]>[今すぐ再起動する]

>[トラブルシューティング]>[詳細オプション]

>[Windowsのスタートアップ設定]を開く

さすがMicrosoft、わけわかんないです。

  • チャームというのはたぶん画面右下あたりにマウスをかざすと右側から出てくるメニューです。
  • 電源OFFなんかもここです。
  • [Windowsのスタートアップ設定]まで、頑張って辿り着いてください。(ラビリンスですな)
  • 画面右下の再起動ボタンを押して再起動させると、以前のWindowsで言うところのF8キーを押しながらセーフモードみたいなモードで起動してくれます。
  • 再起動したら、そのセーフモードメニューのようなところで「7)ドライバー署名の強制を無効にする」を選択します。
  • 未署名のドライバーをインストールして、うまくいったら成功です。
  • この状態になるのは一回限りで、次回起動時はセーフモードではなくなります。


一応、署名なしのInfファイルを使用して、仮想COMデバイスの認識に成功しました。






スイッチサイエンスさんのUSB PID:VID 無償提供プログラム


すzさんのAVR研究

  • によれば、AVRのV-USB が使っている USB の VID/PIDは USB-IDs-for-free.txt に従えば AVRのV-USBデバイスでなくてもルールさえ守れば無償使用可能になった、らしい。

世の中どんどん進んでる。








<前の月次の月>