Cortex-A9高性能開発キットTiny4412の開発手順連載 (8)

Tiny4412等開発ボード関連のフォラーム

Cortex-A9高性能開発キットTiny4412の開発手順連載 (8)

投稿記事by dwtechadm » 火 8 13, 2013 3:11 pm

ARM/Cortex-A9・4コア Tiny4412開発キット詳細URL

3.2.5 Andorid4.2.1 リソースコード解凍・インストール
ディレクトリ/opt/FriendlyARM/tiny4412/androidを作成
コマンドラインで 入力
#mkdir –p /opt/FriendlyARM/tiny4412/android
Tiny4412 CDから Android ディレクトリを tmp ディレクトリ下にコピーする、ネットから iso ファイルをダウンロードする場合、下記のコマンドでisoをロードし、コピーする:
# mkdir –p /mnt/iso
# mount –o loop Tiny4412-20130707.iso /mnt/iso
# cp /mnt/iso/Android /tmp/ -a
(注:#はプロンプト、入力必要なし)

(1)Android4 カーネルリソースコード解凍・インストール
ディレクトリ/opt/FriendlyARM/tiny4412/android で下記のコマンドを実行する:
#cd /opt/FriendlyARM/tiny4412/android
#tar xvzf /tmp/Android/linux-3.5-YYYYMMDD.tgz
生成した linux-3.5 ディレクトリに完全なカーネルリソースコードを含む
説明:YYYYMMDD は発行年月。

(2)インストール Android4.2.1 リソースコードパッケージ解凍
ディレクトリ/opt/FriendlyARM/tiny4412/android で下記のコマンドを実行する:
#cd /opt/FriendlyARM/tiny4412/android
#tar xvzf /tmp/Android/android-4.2.1_r1-fs-YYYYMMDD.tar.gz
android-4.2.1_r1 ディレクトリ生成。
説明:YYYYMMDD は発行年月。

3.3 Linuxカーネル設定とコンパイル
Linux3.5 カーネルコンパイル:
#cd /opt/FriendlyARM/tiny4412/android/linux-3.5
#cp tiny4412_android_defconfig .config ; config 前に゛.゛付き

make menuconfig を実行し、設定を編集する、完了後、 makeでコンパイルを開始する:
# make
最後arch/arm/boot ディレクトリで zImageを生成し、SD カード images/Android/下の zImageプログラミングを Tiny4412 に書き換える。

3.4 リソースコードからAndroid作成
Android リソースコードを便利にコンパイルするため、リソースコードパッケージを統合し、スクリプトもリソースコードコンパイルとプログラミングイメージ作成に使用する。スクリプトの機能は下記の通り:
画像
Android リソースコードをコンパイルするには、コマンドラインで下記のコマンドを実行する(Android 4.2.1_r1 リソースコード):
コンパイル:
#cd /opt/FriendlyARM/tiny4412/android/ android-4.2.1_r1
#. setenv ;注゛.゛次のスペースに注意
# make
(注: make に-j パラメータを追加し、 CPUのマルチコア加速を利用し、コンパイル速度を上げる、例えば4コアパソコンで、 make –j4 を入力し、コンパイルする)
Androidコンパイルには長時間を掛かるので、バーチャルマシンでコンパイルのを控え、マルチコアCPUと実際のLinuxシステムを使用しコンパイルするには、速度は速い。


3.5 インストール/ファイルシステムイメージ生成
コンパイル成功后、下記のコマンドを実行し、システムイメージファイル system.img と ramdisk-u.imgを生成する:
#./gen-img.sh
gen-img.sh 実行、Android リソースコードは現在ディレクトリ下で system.img と ramdisk-u.imgを生成する:
画像
system.img と ramdisk-u.img をSD カードの images/Android ディレクトリにコピーし、オフラインでプログラミング;または burn-img.sh を実行し、 fastboot でUSB プログラミング出来る。

3.6 Andoridプログラムでハードウェアアクセス
開発ボードのハードウェアリソースをアクセスするの Androidアプリを便利に開発するため、関数ライブラリ( libfriendlyarm-hardware.so)を提供し、Tiny4412 上のハードウェアリソースアクセスに使用する。ハードウェアデバイス:シリアルデバイス、ブザーデバイス、EEPROM、ADC デバイス等をサポートする。
iTest アプリも本関数ライブラリで開発した、Android で iTestを実行し、関数ライブラリの機能を確認できる。


3.6.1 関数ライブラリ使用(libfriendlyarm-hardware.so)
Android OSで libfriendlyarm-hardware.so が内蔵され、本ライブラリファイルは Android リソースコードディレクトリの下記のパスに存在する:
vendor/friendly-arm/exynos4412/rootdir/system/lib/libfriendlyarm-hardware.so
開発ボードでは /system/lib/libfriendlyarm-hardware.so ディレクトリ下に存在する。

Eclipse でAndroid アプリを開発する場合、下記の方法で実現できる。
libfriendlyarm-hardware.so:
1) Android アプリケーションディレクトリにロケート、アプリケーションディレクトリ下で libs ディレクトリを作成、 libs ディレクトリ下で armeabi ディレクトリを作成、最後にlibfriendlyrm-hardware.so ライブラリファイルを armeabi ディレクトリ下にコピーする。
2)アプリケーションディレクトリに戻り、 src ディレクトリ下に入り、 com\friendlyarm\AndroidSDK 三層のディレクトリを作成、AndroidSDK ディレクトリ下でファイルエディタで1つのリソースコードファイルを追加し、HardwareControler.javaと命名する、次はファイル中に下記のコードを追加する:
画像
画像
設定完了後、 Eclipse起動、 Eclipse の左侧で項目リストを右クリックし、゛Refresh゛。項目の関連ディレクトリは下記の通り:(赤ライン部分):
画像
HardwareControler のインタフェースを使用するには、下記のコードを追加、 HardwareControlerクラスにインポートする:
import com.friendlyarm.AndroidSDK.HardwareControler;
HardwareControler クラスのインタフェースを呼び出せる、次の章で HardwareControler クラスの関数インタフェースを説明する。


3.6.2 関数ライブラリ(libfriendlyarm-hardware.so)インタフェース説明
アプリ層で、前章のHardwareControler クラスで libfriendlyarm-hardware.so ライブラリ中のインタフェースを呼び出し、 HardwareControler クラス中のインタフェースの定義は下記の通り、インタフェースはクラス方法のため、HardwareControlerオブジェクトインスタンスを作成する必要がない。

3.6.2.1 シリアル通信のインタフェース説明
シリアル関連インタフェースは下記の通り:
画像
画像
インタフェースの使用説明:
先ず openSerialPortでシリアルデバイスをオーペン、スレッドでまたはtimerを介し、selectを呼び出し、 インタフェースポーリングし、シリアルデバイスのデータ状況を判断する。データある場合、 readを呼び出し、インタフェースからデータを読み取り。
シリアルにデータ書き込む場合、write インタフェースを呼び出す。
シリアル使用完了後、使用完毕后、需要调用 close 关闭シリアル。

3.6.2.2 LED ON/OFFのインタフェース説明
LED 動作のインタフェースは下記の通り:
画像


3.6.2.3 PWMブザー鳴らし/停止のインタフェース説明
ブザー動作のインタフェースは下記の通り:
画像


3.6.2.4 ADCの変換結果読み取りのインタフェース説明
ADC 動作のインタフェースは下記の通り:
画像



3.6.2.5 EEPROMデータの書き込み/読み取りのインタフェース説明
EEPROM 動作のインタフェースは下記の通り:
画像


インタフェースの使用説明:
openI2CDevice を呼び出し IIC デバイスをオーペン、次に新規スレッドを作成、writeByteDataToI2C を呼び出し、EEPROMにデータを書き込む;または readByteDataFromI2C を呼び出し、 EEPROM からデータ読み取る。 writeByteDataToI2C と readByteDataFromI2C 関数は読み取り/書き込み時、10ミリ秒の遅延がある、元のGUI スレッドで直接呼び出すには、画面一時反応なしな場合がある(ショートブロック)。
EEPROM では256 バイトのデータを保存出来る、書き込み/読み取りの指定位置の範囲は0~255、1回は1バイト読み取り/書き込み。
EEPROM 動作完了後、closeを呼び出し、ファイル記述子をクローズする。


3.6.3 デモ・プログラム説明
CDの゛Android゛ディレクトリ下に1つのデ・プログラム LEDDemoがあり、Windowsな場合はEclipseでプロジェクトをオーペンし、libfriendlyarm-hardware.soを使用する。
miniUSB ケーブルで開発ボードと説明後、 Eclipseで直接デモ・プログラムを開発ボードにダウンロードし、実行する。
dwtechadm
 
記事: 60
登録日時: 月 2 25, 2013 1:35 pm

Return to Cortex-A9関連

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[0人]

cron