最終更新:2012-12-29 (土) 19:16:39 (4359d)
参考図書/Linuxデバイスドライバプログラミング
http://www.sbcr.jp/products/4797346428.html?sku=4797346428
目次
第1章 - Linuxデバイスドライバの概要
第2章 - Linuxのライセンス
第3章 - デバイスドライバ開発の準備
第4章 - デバイスドライバの第一歩
- 動的/静的なデバイスドライバの作成、エントリポイントなど
- make menuconfig
- module_init
- module_exit?
- ioctl
第5章 - ドライバプログラミングの基礎知識
- コンテキスト
- プロセスコンテキスト
- 割り込みコンテキスト
- (カーネルコンテキスト?)
- プリエンプティブ
- データモデル?
- エンディアン
- アラインメント?
- リンクドリスト?
- 仮想メモリ
- get_user
- put_user?
- access_ok
- copy_from_user
- copy_to_user
- clear_user?
- デバイスファイル
- メジャー番号/マイナー番号
- write/read
- register_chrdev
- alloc_chrdev_region
- file_operations
- udev
第6章 - ドライバプログラミングの実際
- IOCTL、64ビットカーネル?、select/poll、procfs、seq_file?、スリープとウェイクアップ?など
- DMA
- ウェイトキュー
- procfs
- create_proc_entry
- create_proc_read_entry?
- proc_mkdir?
- wait_event_timeout
- wake_up
- Linux/proc/interrupts
第7章 - ハードウェア制御
- I/OマップドI/O - I/Oポートによるアクセス
- メモリマップドI/O
- ioremap
- ioremap_nocache
- iounmap?
- request_mem_region (いきなりioremapも可能だが推奨)
- pci_iomap?
- sparse?
- __iomem?
- メモリバリア
- volatile
- インラインアセンブラ
- asm
第8章 - メモリ
- Linuxカーネルのメモリ管理、スタック、スラブアロケータ?、DMA、キャッシュコヒーレンシ?など
- ページング
- スラブアロケータ?
- カーネルスタック?
- kmalloc/kfree?
- バディシステム?
- vmalloc?
- DMA
- キャッシュコヒーレンシ?
第9章 - タイマ
第10章 - 同期?と排他?
- read-modify-write?、アトミック操作、セマフォ、コンプリーション?、スピンロックなど
- マルチスレッド
- クリティカルセクション
- アトミック操作
- セマフォ
- コンプリーション?
- カーネルスレッド
- kthread_create?
- スピンロック
第11章 - 割り込み
第12章 - PCI
第13章 - シリアルバス
- I2C、バス制御、データ転送方式、lm-sensorsパッケージなど
第14章 - ACPI
第15章 - IPMI
第16章 - テストとデバッグ
第17章 - ドライバ設計と実装の実際
関連
- Linux
- デバイスドライバ
- Linux/カーネルモジュール
- Linux/カーネルモジュール/開発
- Ctags
- LXR
- コーディング規約
- gcc
- ld
- make
- make *config
- kernel-devel
- kernel-headers
- Makefile
- .ko
- insmod
- Module.symvers
- modprobe
- Kconfig
- データ型モデル
- Linux/sys/class
- Sparse
- タイマー
- シリアルバス
- Magic SysRq?