|
組み込みLinux開発の中で、デバイスドライバは大きな要素となります。特に、Linuxカーネルとの関係や、ソースコードの構造などLinuxの一般的な事項に加え、組み込み機器特有の設定や開発環境作りなど、幅広い調査や学習が必要です。本講座はこれから取り組む方々も対象に、全体像を講義と実習で取得いただきます(2日間コース)。
内容
1日目は、Linux デバイスドライバ開発の基本的事項の解説と実習となります。
Linuxでは、カーネルとデバイスドライバの関係はどうなっているのか、 Linux デバイスドライバのソースコードはどのような構造なのか、などの概要から、デバイスドライバ登録関数やメソッドについて、デバイスへのアクセスの実習、割り込みやioport使用のコーディング実習に至るまで、必要な要素がコンパクトにまとめられたカリキュラムになっております。ここまでで、 Linuxのデバイスドライバの全体的なイメージを理解いただけます。
2日目は、ターゲットボード Beagle Board のデバイスドライバを、ホストマシン上で開発する実習を行ないます。 その準備のための環境構築も、実習に含まれます。
ホストマシンに装備される各サービス (dhcpd、tftp、nfs マウント、minicom)の設定、クロスツールチェーンの配備、および、ターゲットボードのカーネル、ルートファイルシステムの配備の各方法、手順について、解説します。クロスツールチェーン、カーネル、ルートファイルシステムの配備には、Timesys LinuxLink を使用します。実習で開発環境を実際に構築し、Beagle Board を起動した後、LED のioctl 制御、ユーザーボタンの GPIO 制御、カーネルへの組み込みによるスタティックドライバ実習を行ないます。2日目は、組み込みLinuxのデバイスドライバ開発を実際に体験を通して習得いただきます。
使用するターゲットボード
| - VIA ME6000 (VIA C3) |
| - BeagleBoard (OMAP3530DCBB72 720MHz) |
対象
| - Linuxに関する基本的知識をお持ちの方 |
| - C言語による開発経験のあるソフトウェア開発者 |
| - これからデバイスドライバ開発を始められる方 |
日程
| 1日目:基礎編 |
| [ 講義 ] |
| Linuxデバイスドライバの特徴、分類、スタティックとモジュール化など、Linuxデバイスドライバの基本的事項を解説します。 |
デバイスドライバの概要
デバイスドライバの分類 (キャラクタ型/ ブロック型/ ネットワークインタフェース)
ローダブルモジュール、スタティックリンクのドライバについて
デバイスドライバ登録関数とメソッドについて
カーネル2.6以降のデバイスドライバ機能として、Linuxデバイスモデルについて (USB probeの実装アウトライン、sysfs参照の紹介)
|
| [ 実習 ] |
| 講義の内容に基づいてデバイスドライバ開発における基本的事項について実習します。 |
モジュール作成、登録、削除の実習
デバイスへのアクセス実習 (copy_to_user, copy_from_user関数の使用)
メソッド使用実習 (open,ioctl,read,close)
割り込みの登録 (/proc/interruptsの確認)、ioportの使用実習 (/proc/ioportsの確認)
|
|
| 2日目:実践と応用編 |
| [ 講義 ] |
| 組み込みLinux のデバイスドライバ開発の環境構築について、ターゲットボードの起動までの具体的、実践的手順を解説します。 |
クロス開発環境の整備について (クロスツールチェーン、ブートローダ)
ホストマシンの設定について (bootp/dhcpd、tftp、nfs マウントの各サービス設定、minicom によるターゲットマシンとのシリアル通信)
カーネルの配備 (make menuconfig による設定、再コンパイル
ルートファイルシステムの配備 (Timesys LinuxLink による online factory の利用、クロスツールチェーンの配備)
|
| [ 実習 ] |
| Timesys LinuxLink を開発環境、Beagle Board をターゲットボードとし、実際に開発環境を構築します。さらにデバイスドライバ開発について実践的な実習を行ないます。 |
Beagle Board の起動 (u-bootによる起動手順)
LED のioctl 制御の実習
ユーザーボタンの GPIO 制御の実習 (Beagle Boardのユーザーボタン押下で LED 点消灯制御します)
カーネルへのスタティックな組み込み方法
sysfsによるアクセス手法
|
|
|