忍者ブログ
日記です.自分用のメモ代わりに書くことが多いです.
1 2 3 4 5 6 7
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Androidのデフォルトでは、USBドライバが入っていなかったりして、カスタマイズが必要となる。

忘備録として、手順を記す。
スマートフォンにも適用できるけど、シリアルポートやUSB端子がある端末なんてないので、タブレット限定かな。
  1. Linuxカーネルをビルドする
  2. 端末をアップデートする
  3. ユーザモード⇒ルートモード切替可能にする
  4. シリアルポートを使用したアプリを開発する
1. Linuxカーネルをビルドする

インストール手順は詳しくはここを参照。
以降、Linux上で実行する。

まずクロスコンパイル環境を準備する。
masapon@ubuntu:~$ sudo mkdir /opt/toolchains
masapon@ubuntu:~$ cd /opt/toolchains
masapon@ubuntu:/opt/toolchains$ sudo wget http://www.codesourcery.com/sgpp/lite/arm/portal/package6493/public/arm-none-eabi/arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
masapon@ubuntu:/opt/toolchains$ sudo tar xjf arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
パスに/opt/toolchains/arm-2010q1/binを追加しておく。

次にカーネル(kernel-20110629.gz.tar )をダウンロードし、解凍する。
masapon@ubuntu:~$ mkdir odroid
masapon@ubuntu:~$ cd odroid
masapon@ubuntu:~/android$ tar xzf kernel-20110629.gz.tar
masapon@ubuntu:~/android$ cd kernel
masapon@ubuntu:~/android$ make ARCH=arm odroida_android_defconfig

menuconfigを実行し、FTDIのUSBドライバをカーネルに含めるように設定する。
masapon@ubuntu:~/android/kernel$ make ARCH=arm CROSS_COMPILE=arm-none-eabi- menuconfig
[Device Drivers]⇒[USB support]⇒[USB Serial Converter support]⇒[USB FTDI Single Port Serial Driver]
にチェックを入れる。

menuconfig.png






menuconfig_usb.png







ビルドを実行する。時間かかるので、終了するまで待つ。
masapon@ubuntu:~/android/kernel$ make ARCH=arm CROSS_COMPILE=arm-none-eabi-
masapon@ubuntu:~/android/kernel/arch/arm/boot$ ls
Image  Makefile  bootp  compressed  install.sh  zImage
zImageファイルが作成されるので、これを書き込む。







以降、順次更新します。
PR
定時外に会社でAndroidNESを動かしてみた。

実行時間を計測したところ、1フレーム当たり
NESとしての処理時間:30ms
画面表示処理:5ms
くらいかかっていた。

CPU負荷を計測したところ、50%近かったので、2コアのうち1コアは占有してる感じ。
(CPU:SAMSUNG Exynos4210 Dual-core ARM Cortex-A9 1Ghz with 1MB L2 cache)

これを60fpsで動かすには、30ms⇒10msくらいにしなければならない。。

メイン処理をスレッド化してうまく負荷分散すれば半分くらいの時間で終わるかな。。
めちゃくちゃ面倒そうだけど。

もしくは、今はDalvik VM上で動作しているのだけど、これが遅いのかな?

ネイティブコンパイルする方法もあるので、そうすれば速くなりそう。
ただその場合、言語はC/C++になるので、面白くない。。

NESとしてちゃんと動作させることは諦めて、Android学習用として割り切るしかないかも。
今日は月釜でした。

日曜に朝9時集合は辛かったけど、なんとか間に合った。

自分はお点前二回やったけど、一回目は二箇所もミスってしまった。。

二回目はちゃんと修正できたけど、本番に弱いのは昔から変わってないなー。

次は11月にある秋のお茶会ですね。今回はお薄だったけど、11月はお濃。大変だ。。
(お薄とかお濃は抹茶の濃さというか練り具合が違います。お濃の方が数倍難しい。)

cha.png










cha2.png







とりあえず動作するとこまで作ってみた。

Javaなので、コアな部分はほとんど手を入れずに使えました。

画面描画が適当なので、デモに入るまで1分くらいかかる。。

ファイル名も直打ちだし、色々機能追加したいなっと。

慣れてきて一通り習得できたら、何か面白いもの作りたいなー。

現状一番の問題なのは、手元にAndroid端末がないこと。実機での動作確認ができません。

次携帯買うときはAndroidにするかー。

#ファイル転送コマンド
% adb push ファイル名 ファイル転送先

% adb push example.nes /sdcard/example.nes

cac8cb1f.png











とりあえずHello, World表示してみた。

会社でも環境インストールして、先輩が前作ったアプリが実機で動作するのを確認できた。

Bluetooth使ったアプリで、ちゃんと動作した。Android向けのデモできるじゃん、すげー。


家で勉強でやれることといったら、Androidに特化した機能を使えるようにするくらいかなー。

開発言語はJavaなので、まずは昔作ったJavaNESを移植してみるかー。

もう5年くらい前だから、まずはソース見て思い出さないと。。。


c27b0bc8.png










HelloWorld.png










プロフィール
HN:
まさぽん
性別:
男性
職業:
会社員
最新記事
(08/22)
(08/16)
(08/08)
(08/01)
(07/30)
カウンター
ブログ内検索
最新コメント
[03/18 ひぐ]
[03/10 まさぽん]
[03/09 ボンボ-ン]
[03/07 まさぽん]
[03/07 まさぽん]
クリック募金
なかのひと
アクセス解析
忍者ブログ [PR]
≪PREV NEXT≫