Mini2440組込Linux移植ステップバイステップガイドライン(4)

Mini2440/Mcro2440等開発ボード関連のフォラーム

Mini2440組込Linux移植ステップバイステップガイドライン(4)

投稿記事by dwtechadm » 火 9 10, 2013 5:11 pm

3.8.3  YAFFS2をサーポートするカーネルをコンフィグ、コンパイル
Linuxカーネルソースコードルートディレクトリでmake menuconfigを実行する。下向きボタンで移動し、File Systemsを選べEnterボタンを押し、サブメニューに入る
画像
゛Miscellaneous filesystems゛メニューオプションを探し、Enterボタンを押し、サブメニューに入る、下図を参照する

画像
下図のメニューで、゛YAFFS2 file system support゛を探し、スペースボタンで選択する。カーネルにyaffs2ファイルシステムのサポートを追加、゛Exit゛を押し、カーネル設定を終了する。

画像

コマンドライン:#make zImageを実行する

3.8.4 開発ボードにプログラミング、実行、テスト
最後にlinux-2.6.32.2/arch/arm/boot/zImageを生成し、supervivi の゛k゛機能を利用し、nand flashにプログラミングする、゛b゛を押し、システムを起動する。nand flashにはファイルシステムがあれば、(superviviの゛y゛機能を使用し、既存のyaffs2ファイルシステムイメージroot_qtopia-128M.imgでテスト)。下図の情報を確認できましたら、yaffs2の移植は成功することを明らかにしている。
画像
3.9 DM9000のNICドライバを移植
3.9.1 デバイスリソースの初期化
Linux-2..6.32.2はすでに完全なDM9000 NICドライバを持っていた(ソースコード位置:linux-2.6.32.2/drivers/net/dm9000.c)、プラットフォームデバイスで、ターゲットプラットフォーム初期化コードに、該当の構造を書き込む、具体的な手順は下記の通り
まずドライバに必要のヘッダファイルdm9000.hを追加する
画像
DM9000のLANカ—ドデバイスデバイスの物理ベースアドレスを定義する。

画像
次にDM9000 NICドライバインタフェースと合わせ、該当プラットフォームのデバイスリソースを修正し、下記のとおりである

画像
画像
画像


このようにDM9000プラットフォームデバイスのインタフェースは修正された

3.9.2 DM9000が使用するビット幅レジスタ調整
Linux-2.6.32.2のDM9000 NICドライバはmini2440専用ではないため、ソースコード移植が必要である:
linux-2.6.32.2/drivers/net/dm9000.cを開き、ヘッダファイルに2410の関連設定定義を追加し、次の赤い部分のように示す
画像
dm9000デバイスの初期化関数には次の赤い部分を追加し、これはDM9000が使用するチップセレクトバスを設定するタイミングで、現在、mini2440にはバスを通じて外部へ拡張するデバイスは一つだけで、このデバイスで関連のレジスタ設定を直接に修正できる。mach-mini2440.cでも修正できる。

画像
画像


3.9.3  MACアドレスについて
本開発ボードの使用するDM9000 LANカ—ドはEEPROMと外部接続しMACアドレスを保存しないから、システムのMACアドレスは"ソフト"アドレス(広範囲)であり、即ちソフトウェアを通じて、任意値を修正できる、static int __devinit dm9000_probe(struct platform_device *pdev)関数から見て:
画像
ここまでDM9000の移植は完了する


3.9.4 カーネル設定、DM9000を追加、コンパイルとテスト
カーネルソースディレクトリで、#make menuconfigを実行し、カーネルにNICドライバを設定し始め、下記のメニューオプションを順に選択する
画像
DM9000の設定オプションを見つけ、DM9000は選択されたと見えるのは、Linux-2.6.32.2のデフォルトカーネル設定はDM9000のサポートを追加してからになる

画像
次に#make zImageを実行し、最後にarch/arm/boot/zImageファイルを生成し、゛k゛コマンドを使用し、開発ボードにプログラミングし、デフォルトファイルシステムで起動し、コマンドラインターミナルにifconfigコマンドを実行する。下記図を参照することを見える

画像



3.10 RTCドライバを活性化
3.10.1 初期化ファイルにRTCデバイス構造を追加
Linux-2.6.32.2カーネルは2440のRTCドライバに対して十分であるが、mach-mini2440.cのデバイスリストに追加しないため、活性化されていない。RTC構造を追加し、次の赤い内容のように示す
画像

3.10.2 カーネルにRTCを設定
カーネルを再構成、RTCのドライバサポートを追加する、下記のメニューオプションを順に選択する
画像
図のようなメニューが出る

画像

デフォルト設定はRTCの関連オプションを設定メニューの一番に選択された
<*> Samsung S3C series SoC RTCオプション
カーネルの2440 のRTCドライバ設定オプションである。

3.10.3 RTCをテスト
カーネル設定メニューを終了し、#make zImageを実行し、生成したarch/arm/boot/zImageを開発ボードにプログラミングし、/devディレクトリ下に/dev/rtcデバイスドライバが確認できる、下図を参照する
画像

RTCをテストしようとすれば、mini2440ユーザーマニュアルの関連章節を参照する:

Linuxでは、普通はdateコマンドで時間を変更する、S3C2440内部クロックをlinuxシステムクロックと同期させるため、hwclockコマンドを使用する:
(1) date -s 042916352007 #時間を2007-04-29 16:34と設定する
(2) hwclock -w #先設定した時間をS3C2440内部のRTCに保存する
(3) オンモードにする時、hwclock -sコマンドでlinuxシステムクロックをRTCに回復できる、基本的には該当コマンドは/etc/init.d/rcSファイルに置かれ、自動的に実行させる
注:既存システムは既にhwclock –sコマンドをrcSファイルに書き込まれました。
実行図は下記の通り

画像

3.11 LCDバックライト•ドライバを追加
3.11.1  LCDバックライト•制御原理
今までコマンドラインで移植作業を行い、結果を表示される、LCDスクリーンには何の表示もない。本節からこれについて説明する
mini2440/micro2440開発ボードにはLCDバックライトはCPUのLCD_PWRピンを通じて制御し、GPG4と対応する。下図を参照する

画像
LCD_PWR出力はハイレベル 奇数゛1゛になる場合、バックライトをオンし、出力はローレベル 偶数゛0゛になる場合、バックライトをオフする(注:ここで、バックライトをオン/オフ操作するだけ、バックライト輝度を調整しない)

3.11.2 カーネルにバックライトドライバを追加
現在、ソフトウェアでバックライトの制御スイッチを制御するため、バックライトドライバを追加する。
実現したい効果:
コマンドターミナルにバックライトデバイスへ偶数゛0゛を送信するすると、バックライトをオフできる、奇数 ゛1゛を送信するすると、バックライトをオンできる。ユーザーマニュアル (LCD バックライトを制御):
注:LCD バックライトデバイスファイル:/dev/backlight
コマンドライン:echo 0 > /dev/backlightを入力する、バックライトをオフできる
コマンドライン:echo 1 > /dev/backlightを入力する、バックライトをオンできる
そして、linux-2.6.32.2/drivers/videoディレクトリ下にmini2440_backlight.cファイルを追加する、内容は下記の通り

画像
画像
画像
画像
画像
画像
次にバックライト設定オプションをカーネル設定メニューに追加し、linux-2.6.32.2/drivers/video/Kconfigをオープンし、下図を参照し位置に追加する
画像
画像
linux-2.6.32.2/drivers/video/Makefileをオープンし、設定定義に基づき、ドライバターゲットファイルを追加し、下図を参照する
画像
ここまでカーネルにmini2440のバックライトドライバは移植された、カーネルソースコードルートディレクトリにmake menuconfigを実行し、次のサブメニューを順に選択する
画像
該当設定オプションを探し、下図を参照する

カーネルソースコードルートディレクトリにmake menuconfigを実行し、次のサブメニューを順に選択する。該当設定オプションを探し、下図を参照する

画像
スペースを押し、先に追加されたmini2440オプションを選択、保存、カーネル設定メニューを終了し、コマンドライン:make zImageを実行し、arch/arm/boot/zImageを生成する、superviviの゛k゛機能を使用し、開発ボードにプログラミング、起動すると、バックライトはオンにする。



----------続く
dwtechadm
 
記事: 60
登録日時: 月 2 25, 2013 1:35 pm

Return to ARM9ボード関連

オンラインデータ

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