私はLinuxカーネルモジュール/ドライバを書く知識がありません。
基本的な例を見てみましょう。割り込みピンの1つのマイクロコントローラに接続された入力デバイスがあります。デバイスのボタンを押すと、マイクロコントローラでハードウェア割り込みが発生することがわかります。
ベアメタル開発者として、私は特定の割り込みが発生したときに割り込みベクトルがジャンプするアドレスに割り込みハンドラコードを配置します。
マイクロコントローラで実行されているLinuxカーネルがあり、入力デバイス用のカーネルドライバを作成したい場合は、カーネルを介して割り込みハンドラを登録する場所を正確に知ることができますか?
ハードウェア、アドレスなどについて何を知る必要がありますか?カーネルのどの割り込みラインが入力デバイスを接続する正確なピンに関連付けられているかどうかはどうすればわかりますか?
答え1
デバイスやオペレーティングシステムに関係なく、開始点はデバイスがシステムに接続する方法です。 (PCIバススロットに接続していますか?USBポートに接続していますか?一部のマザーボードSMBusに接続していますか?...)
インターフェイスが派手すぎず、デバイスがインターフェイス仕様に厳密に準拠していて、車輪を再構築したくない場合は、タスクの最も悪い部分(ハードウェアに最も近い)がすでにLinuxに記録されている可能性があります。カーネルを使用し、まず適切なAPIを選択する必要があります。
一つで始まるドライバ開発者にLinux APIのグローバルな概要を提供します。その後、あなたが選択したものやインターフェースについて詳しく教えてください。
マイクロコントローラに関しては、私はそれが中小企業バス。