Linux/デバイスドライバ/開発
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-[[組み込みLinuxデバイスドライバの作り方 (1):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (2):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (3):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (4):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (5):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (6):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (7):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (8):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (9):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (10):https://qii...
-[[組み込みLinuxデバイスドライバの作り方 (11):https://qii...
-[[組み込みLinuxデバイスドライバの作り方 (12)(完):https:/...
-[[はじめて学ぶデバイスドライバ開発。組み込みLinuxによる...
-[[Linux Kernel Driver Quest:http://www.ftechworks.mydns....
-[[Linuxデバイスドライバ開発:http://public2016.hatenablog...
-[[キャラクタデバイスドライバを作ってみた。:https://k-oni...
*コーディング規約 [#h1ca4da5]
-タブ ... 8文字
-インデント ... 8文字
-1行は80文字まで
--80文字より長い行は分割して、次の行になるべく右の方に配置
-関数はなるべく短くすべきで、長くても2画面(1画面は80x24...
*ビルド [#u8bfd566]
**Makefile [#c08a6308]
obj-m += foobar.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$...
clean:
make -C /lib/modules/$(shell uname -r)/build M=$...
-obj-m ... 最終的に作りたい *.ko ファイルのもととなる .o ...
- -C オプション ... Makefileがある場所を指定(別アーキテ...
**カーネルコンフィグレーションへの追加 [#be7fe215]
*コーディング [#kc4d3776]
**ヘッダファイルのinclude [#q1ec59d8]
#include <linux/module.h>
#include <linux/init.h>
**ライセンス指定 [#u3a663c5]
-*.c に MODULE_LICENSEマクロを記述
-例)
MODULE_LICENSE("Dual BSD/GPL");
**printk() [#xf229cff]
-printf() は使えない。代わりに pritk() を使う。
-printk() の出力先はカーネルバッファ
-カーネルバッファは dmesg コマンドで参照できるが、ラウン...
*GPIO制御 [#t10e7f6e]
-[[sys/classにgpioが作成されない:https://armadillo.atmark...
**制御関数 [#r5a8fb65]
-linux/gpio.h
-int gpio_request(unsigned gpio, const char *label)
--GPIOを登録する。gpioはGPIO番号。
-int gpio_export(unsigned gpio, bool direction_may_change);
--外部から制御可能な汎用GPIOとして使用できるようにする。
-int gpio_direction_output(unsigned gpio, int value)
--GPIOを出力に設定する。gpioはGPIO番号。valueは初期出力値...
-int gpio_direction_input(unsigned gpio)
--GPIOを入力に設定する。gpioはGPIO番号
-void gpio_set_value(unsigned gpio, int value)
--GPIOに出力する。gpioはGPIO番号。valueは出力値(0 = low, ...
-int gpio_to_irq(unsigned gpio)
--GPIOの指定したピンの割り込み番号を取得する
-int request_irq(unsigned int irq, irq_handler_t handler,...
--割り込みハンドラの登録をする。これはGPIOに限った関数で...
*I2C [#a8bb2fc0]
-[[Raspberry Pi でI2C:C言語プログラミング:http://d.haten...
-[[I2C通信の技術説明とドライバ作成方法:https://www.topper...
終了行:
-[[組み込みLinuxデバイスドライバの作り方 (1):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (2):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (3):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (4):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (5):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (6):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (7):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (8):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (9):https://qiit...
-[[組み込みLinuxデバイスドライバの作り方 (10):https://qii...
-[[組み込みLinuxデバイスドライバの作り方 (11):https://qii...
-[[組み込みLinuxデバイスドライバの作り方 (12)(完):https:/...
-[[はじめて学ぶデバイスドライバ開発。組み込みLinuxによる...
-[[Linux Kernel Driver Quest:http://www.ftechworks.mydns....
-[[Linuxデバイスドライバ開発:http://public2016.hatenablog...
-[[キャラクタデバイスドライバを作ってみた。:https://k-oni...
*コーディング規約 [#h1ca4da5]
-タブ ... 8文字
-インデント ... 8文字
-1行は80文字まで
--80文字より長い行は分割して、次の行になるべく右の方に配置
-関数はなるべく短くすべきで、長くても2画面(1画面は80x24...
*ビルド [#u8bfd566]
**Makefile [#c08a6308]
obj-m += foobar.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$...
clean:
make -C /lib/modules/$(shell uname -r)/build M=$...
-obj-m ... 最終的に作りたい *.ko ファイルのもととなる .o ...
- -C オプション ... Makefileがある場所を指定(別アーキテ...
**カーネルコンフィグレーションへの追加 [#be7fe215]
*コーディング [#kc4d3776]
**ヘッダファイルのinclude [#q1ec59d8]
#include <linux/module.h>
#include <linux/init.h>
**ライセンス指定 [#u3a663c5]
-*.c に MODULE_LICENSEマクロを記述
-例)
MODULE_LICENSE("Dual BSD/GPL");
**printk() [#xf229cff]
-printf() は使えない。代わりに pritk() を使う。
-printk() の出力先はカーネルバッファ
-カーネルバッファは dmesg コマンドで参照できるが、ラウン...
*GPIO制御 [#t10e7f6e]
-[[sys/classにgpioが作成されない:https://armadillo.atmark...
**制御関数 [#r5a8fb65]
-linux/gpio.h
-int gpio_request(unsigned gpio, const char *label)
--GPIOを登録する。gpioはGPIO番号。
-int gpio_export(unsigned gpio, bool direction_may_change);
--外部から制御可能な汎用GPIOとして使用できるようにする。
-int gpio_direction_output(unsigned gpio, int value)
--GPIOを出力に設定する。gpioはGPIO番号。valueは初期出力値...
-int gpio_direction_input(unsigned gpio)
--GPIOを入力に設定する。gpioはGPIO番号
-void gpio_set_value(unsigned gpio, int value)
--GPIOに出力する。gpioはGPIO番号。valueは出力値(0 = low, ...
-int gpio_to_irq(unsigned gpio)
--GPIOの指定したピンの割り込み番号を取得する
-int request_irq(unsigned int irq, irq_handler_t handler,...
--割り込みハンドラの登録をする。これはGPIOに限った関数で...
*I2C [#a8bb2fc0]
-[[Raspberry Pi でI2C:C言語プログラミング:http://d.haten...
-[[I2C通信の技術説明とドライバ作成方法:https://www.topper...
ページ名: