(私は間違ったものを選択した場合、私は事前にそう謝罪、適用するタグそのうち本当にわからないと思います。)読み取り/書き込みSPIデバイス
私は、これはあまりにも愚かな質問ではないことを願っていますが、私は本当にここで失われた。
クライアントは、Atmel SAMA5D2 Xplained board with Linux4SAMで遊んでくれました。私はそれにSPIインターフェイスをインターフェイスしようとしているが、どこから始めるべきかわからない。
明らかに、私は類似のボード(この特定ではない)のベアメタルを使用しました。私はLinuxを長年使っており、数年前にはいくつかの簡単なデバイスドライバを書いてきました。そして、私はまだ失われています。
dmesg | grep spi
は私に次のような出力が得られます。このことから
[ 1.840000] atmel_spi f8000000.spi: version: 0x311
[ 1.840000] atmel_spi f8000000.spi: Using dma0chan0 (tx) and dma0chan1 (rx) for DMA transfers
[ 1.850000] atmel_spi f8000000.spi: Using FIFO (16 data)
[ 1.860000] atmel_spi f8000000.spi: Atmel SPI Controller at 0xf8000000 (irq 32)
[ 1.860000] m25p80 spi32766.0: at25df321a (4096 Kbytes)
私は、ドライバがロードされ、DMAを使用するように設定されていることと推測します。しかし、SPIデバイスのように見えるものは何もありません/dev/
に見ている(私は/dev/spidev
または/dev/spi32766.0
または類似のようなものを見つけるために期待していた。)
これは、ロードされた実際のデバイスドライバが存在しないことを意味していますか? SPIを使用するために私は1つ書く必要がありますか?
Makefile in the Linux4SAM source treeを見ると、カーネルがモジュールの読み込みをサポートしていないことが1171行目にあります。これは私の新しいドライバを組み込むためにカーネルを再コンパイルする必要があることを意味しますか?これは愚かなアプローチのようです。私がそれにハードウェアにアクセスできない場合、なぜLinuxディストリビューションを提供するのですか?
私はここで何が欠けていますか? は(私はむしろ愚かな感じ...)
EDITを明確にするために:私はいくつかの外部デバイスに接続された外部SPIインターフェースにアクセスしたいです。私はm25p80が内部のフラッシュメモリだと思う。私はそこに読む/書くことに興味がありません。
https://www.kernel.org/doc/Documentation/spi/spidevそして、カーネル設定とデバイスツリーのようなリソースプロバイダでspidevを有効にする必要があります。 – 0andriy
* "Makefileを見ると、カーネルはモジュールの読み込みをサポートしていません。" * - Makefileには設定の詳細はありません。 * "私はm25p80が内部フラッシュメモリだと思う" * - 間違っているのは、SPIで接続された外部フラッシュだ。カーネルの研究** Documentation/spi/spi-summary ** SPI(スレーブ)デバイスは通常、使用するインターフェイスではなく、その機能から派生したデバイスノード名を持っています。 Spidevはユーザ空間のクルーガであるため例外です。 – sawdust
@ 0andriy:spidevはカーネル構成で有効です。モジュール(modprobe)をロードできますが、新しいデバイスは表示されません。私はデバイスツリーに何かを追加する必要はないと思っていました...私はこのようなプラットフォームでLinuxを使い始めました。 – Ludo