(je suis vraiment pas certain de quelles balises à appliquer, si des excuses à l'avance si je choisis des résultats erronés.)lecture/écriture appareils SPI
J'espère que ce n'est pas une question trop stupide, mais je suis vraiment perdu ici.
Un client m'a prêté un Atmel SAMA5D2 Xplained board with Linux4SAM pour jouer avec. J'essaie d'interfacer l'interface SPI, mais je n'ai aucune idée par où commencer.
Pour être clair, j'ai utilisé des planches similaires (pas celle-ci) en métal nu. J'ai aussi utilisé Linux pendant de nombreuses années et j'ai écrit quelques pilotes simples il y a quelques années. Et encore je suis perdu.
dmesg | grep spi
me donne le résultat suivant:
[ 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)
Nous en concluons qu'un pilote est chargé et qu'il est configuré pour utiliser le DMA. Pourtant, en regardant dans /dev/
il n'y a rien qui ressemble à un dispositif SPI (je comptais trouver quelque chose comme /dev/spidev
ou /dev/spi32766.0
ou similaire.)
Est-ce que cela signifie qu'il n'y a pas de pilote de périphérique réel chargé? Dois-je en écrire un pour pouvoir utiliser le SPI?
Si je regarde le Makefile in the Linux4SAM source tree, je vois autour de la ligne 1171 que le noyau ne supporte pas le chargement des modules. Est-ce que cela implique que je dois recompiler le noyau pour inclure mon nouveau pilote? Cela semble être une approche stupide; pourquoi fournir une distribution Linux si je ne peux pas accéder au matériel avec?
Qu'est-ce qui me manque ici? (je me sens plutôt stupide ...)
EDIT Pour être clair: je veux accéder à l'interface SPI externe qui sera connecté à un certain appareil externe. Je pense que le m25p80 est une mémoire Flash interne; Je ne suis pas intéressé à lire/écrire là-bas.
https://www.kernel.org/doc/Documentation/spi/spidev et vous devez activer spidev dans la configuration du noyau et dans le fournisseur de ressources tel que Device Tree. – 0andriy
* "Si je regarde le Makefile ... le noyau ne supporte pas le chargement des modules." * - Vous ne trouverez pas de détails de configuration dans le Makefile. * "Je pense que le m25p80 est une mémoire Flash interne" * - Wrong, c'est un flash externe connecté via SPI. Noyau d'étude ** Documentation/spi/spi-summary **. Les périphériques SPI (esclaves) ont généralement des noms de nœud de périphérique dérivés de leur fonctionnalité, plutôt que l'interface qu'il utilise. Spidev est l'exception puisqu'il s'agit d'un kludge d'espace utilisateur. – sawdust
@ 0andriy: spidev est activé dans la configuration du noyau.Je peux charger le module (modprobe), mais aucun nouveau périphérique n'apparaît. Je n'avais pas pensé à devoir spécifier quelque chose de plus dans l'arborescence des périphériques ... Je suis nouveau sur Linux sur de telles plateformes. – Ludo