Kernel Newbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Newbies Japan

  • Webリソース

  • Mailing List

Wiki bits

  • Site Editors

  • Navigation Menu

  • WikiWall Terms of Service

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

KernelNewbiesJP:
  • WritingPortableDrivers

移植性の高いデバイスドライバの書き方

原文: WritingPortableDrivers

この記事は、Linux Journal Embeddedに掲載された Writing Portable Device Drivers を元に、原著者であるGreg Kroah-Hartmanが このサイトに投稿したものです。 このサイトの他のページ同様、ご自由にこのページを更新してください。

Linuxカーネルデバイスドライバのほとんどが、一種類以上のプロセッサ上で動作 します。これはデバイスドライバの開発者がいくつかのルールを忠実に守るから こそできることです。そのルールには、適切な型の変数を使用すること、特定の メモリページサイズに依存しないこと、外部とのデータのやりとりでエンディアン の問題に気を付けること、適切にデータのアラインメントを合わせること、そして 適切なインタフェイスを介してデバイスメモリへアクセスすることが含まれています。 以下にそのルールの一覧を示します。

  • InternalKernelDataTypes (カーネル内で使用されるデータ型)

  • MemoryIssues (メモリに関する問題)

  • EndianIssues (エンディアンに関する問題)

  • DataAlignment (データアラインメント)

  • IoMemoryAccess (I/Oメモリアクセス)

  • AccessingPciMemory (PCIメモリアクセス)

Linuxカーネルデバイスドライバを新規に作成するときや、既存のデバイスドライバを 修正するときにこれらのルールに従うことで、さまざまなプロセッサ上でうまく動作 するコードを書くことができるでしょう。これらのルールは、ひとつのプラットフォーム 上だけで動作するドライバをデバッグするときにも役立ちます。

覚えておきたいのは、さまざまなプラットフォーム上で動作確認された既存の カーネルドライバがもっとも重要な情報源だということです。 Linuxが優れているのは、ソースコードがオープンにされ、誰でもアクセスできる ことで、意欲的なドライバ開発者に強力な学習ツールを与えているところです。

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01