Comments
Description
Transcript
Linux超入門
Linux 内部動作がわかればこわくない! コーナ 高性能 ARM ボードをハード制御に活用するために マイコン・プログラマのための Linux 超入門 第 12 回 ちゃんとできたらプロ! …デバイス・ツリー対応 宗像 尚郎 最新 Linux でオンチップ / オンボード回路を動かす方法 描画サーバ ユーザ・ プログラム部 windowアプリ (描画クライアント) ユーザLinuxアプリケーション ファイル形式インターフェースPOSIX (仮想) ファイル・システム スペシャル・ 制御する ファイル 画面イメー ジを転送 Linux カーネル ソフト ウェア ハード ウェア 見られる 今回解説するの はチップ内の各 ブロックのアド レス, マッピング 情報のデータ ベース部分 デバイス・ ドライバ レジスタ (プロセス) スケジューラ 割り込み コントローラ Linuxではハード ウェアにファイルの ようにアクセスする DRM I2C リアルタイム・ クロック 見られる スケジュール メモリ 情報 情報 仮想メモリ空間 I/O コントローラ USB DMAスレーブ イーサ ネット A-D コンバータ I/Oバッファ ブロック・ デバイス DMAマスタ レジスタ レジスタ I2Cインター リアルタイム・ VRAM クロック・インター GPU フェース 回路 フェース回路 表示制御 メモリ・ アクセス レジスタ レジスタ レジスタ アドレス 変換 D M A 物理メモリ空間 レジスタ USBインター A-D ブロック・ イーサ デバイス・ フェース コンバータ インター ネット MMU 回路 通信回路 回路 フェース回路 RAM CPU 図 1 今回解説すること…ARM 製品をサポートする上で対応必須! デバイス・ツリーの実装方法や対応を解説 早々にデバイス・ツリー対応を行った BeagleBone Black のコードを参考にする Linux は,x86 や ARM な ど い ろ い ろ な CPU ア ー キテクチャやいろいろな CPU ボードでも動作するマ ルチプラットホーム対応 OS です.前回は,Linux が マルチプラットホームを実現するしくみと,ARM プロセッサをサポートする上で対応が必須となった チップ / ボード固有回路を動かすしくみデバイス・ ツリーを紹介しました(図 1). 今回は,デバイス・ツリー対応済みのボードである BeagleBone Blackを例に,前回触れなかったデバイ ス・ツリー関連ファイルの記述や動作を説明します. (編集部) ● デバイス・ツリー完全対応でお手本にピッタリ! BeagleBone Black 今回は,BeagleBone Black でデフォルトで採用され ている 注 1 カーネル・バージョン 3.8 の Angstrom のデ バイス・ツリー関連ファイルのコードを見ていきます. さらに,BeagleBone Black の拡張ボード Cape をデバ イス・ツリーでサポートする Cape Manager について 解説します. ▶ BeagleBone Black はこんなボード BeagleBone Black は,AM335x シリーズ(テキサス・ イ ン ス ツ ル メ ン ツ )を 搭 載 し た Linux ボ ー ド で す. 注 1:最新の Revision C ではデフォルトのディストリビューショ ンが Debian に変わりました. 134 第 1 回 電源投入からカーネルが起動するまでの動作(2013 年 11 月号) 第 2 回 仮想アドレスのメカニズム(2013 年 12 月号) 第 3 回 高性能処理のキモ! プログラム実行順序決定のメカニズム(2014 年 1 月号) 2014 年 11 月号