ADS7846 用の Linux SPI フレームワーク用のドライバーを作成するのはこれが初めてです。Linux SPI の概念を理解するためのこの優れたチュートリアルを見つけました:--- http://www.jumpnowtek.com/index.php?option=com_content&view=article&id=57&Itemid=62
サンプルコードも付いています。 https://github.com/scottellis/spike/blob/part3/spike.c
1>アクセスする前にセマフォを使用している理由がわかりませんでした-spike_dev.user_buff。
本当にセマフォが必要ですか? 一度に私のアプリケーション プログラムはドライバを read() または write() または open() するだけなので?
2> また、使用しているチップセレクトを選択するには:-- /* チップセレクトラインを指定します */
SPI_BUS_CS1
ここで、CS ラインが接続される PORT を指定しないのはなぜですか?
3>私が読んだように、スピンロックは割り込みハンドラーで使用する必要があります。また、ドライバーでのこのスピンロックの使用は何ですか。ここでは、spi Interupt ハンドラはありません。しかし、アクセス中 (spi_async と spi_device) は、spinlock を使用していますか?
spin_lock_irqsave spi_async spin_unlock_irqrestore
4> また、同じ SPI デバイスに複数の「プロトコル ドライバー」を登録することはできますか?
任意の提案をいただければ幸いです。