Je souhaiterai connaître l'avis de spécialistes sur l'utilisation des GPIOs du RaspBerry Pi.
J'ai commencé à réaliser une application de test, en utilisant un fichier de librairie Gpio.c et Gpio.h.
Cette "librairie" Gpio est réalisée en manipulant directement les registres du RaspBerry.
// Open the master /dev/memory device
if ((fd = open ("/dev/mem", O_RDWR | O_SYNC) ) < 0)
{
fprintf (stderr, "wiringPiSetup: Unable to open /dev/mem: %s\n", strerror (errno)) ;
return -1 ;
}
....
if(0 < pin < 32 )
register_to_pin = 0;
else if(31< pin < 54 )
register_to_pin = 1;
if(value == 1)
*(gpio + (GPIO_PIN_OUTPUT_SET_REGISTER_0 + register_to_pin)) = 1 << (pin & 31);
else
*(gpio + (GPIO_PIN_OUTPUT_CLEAR_REGISTER_0 + register_to_pin)) = 1 << (pin & 31) ;
Est-ce une bonne méthode, ou faut-il absolument utiliser les modules du noyau:
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction
Les modules du noyau me paraissent moins ouverts,mais offrent l'assurance de protéger l'accès au périphérique.
Qu'en pensez-vous?