Salut Kaitlyn.
Je mets en rouge ce que tu as mal lu. Le message dont tu parles est le suivant :Envoyé par Chrtophe
Franchement, je dois mal m'exprimer.Envoyé par Artemus24
Bare metal signifie en anglais "métal nu". Ca signifie sans utiliser un OS.Envoyé par Chrtophe
C'est la même chose quand tu utilises un microcontrôleur arduino, où tu installes ton sketch après l'avoir compilé sur une autre plate-forme.
Disons qu'au lieu d'utiliser un microcontrôleur comme l'arduino, j'utilise mes RPi zero.
Pour des serveurs oui, comme dans le cas des clouds.Envoyé par Chrtophe
Sauf que je ne suis pas dans ce cas, car j'utilise des IOT, où je préfère tout développer par moi-même.
Autrement dit, je démarre à nu sur ma carte, comme la RPi zero, l'ESP8266, l'ESP32, ...
Je n'en sais rien, mais c'est ce qui est dit. Tu peux continuer à les utiliser.Envoyé par Chrtophe
Je pense que ce sont les accès par des open ... close qui sont devenus obsolètes à cause de leur lenteur.
Il n'existait pas de bibliothèques pour accéder proprement aux registres.
Depuis 2018, tu peux passer par la libgpiod, qui est la "linux/gpio.h", sauf qu'elle concerne que les GPIO, pas les autres registres.
"/dev/gpiomem" et "/dev/gpiochip" concernent la nouvelle bibliothèque libgpiod.Envoyé par Chrtophe
C'est ce que j'ai dit précédemment. Cette nouvelle bibliothèque est arrivé en 2018.Envoyé par Chrtophe
Libgpiod est en fait la bibliothèque qui se nomme "/linux/gpio.h".
Franchement, c'est le bazar car chacun y va de ses bibliothèques et du coup, on s'y perd entre la bonne façon de faire et la pérénité.
Je n'utilise pour l'instant que la bibliothèque de Mr Mike Mc Cauley, que pour accéder aux GPIO.
Pour les accès aux autres registres, je passe par la fonction "ioctl()", comme en i2c et spi.
--> https://www.kernel.org/doc/Documentation/gpio/sysfs.txtEnvoyé par Chrtophe
Cela ne va pas être supprimé du jour au lendemain, il y a des tas de développements qui reposent sur ces techniques.
Elles ne vont plus évoluer et c'est tout, mais tu pourras quand même les utiliser.
J'aurai dû me douter que c'est la technique devmem qui a été utilisé car cette bibliothèque a été créé en 2012, bien avant l'apparition de libgpiod.Envoyé par kaitlyn
Je croyais, comme pour le bare metal, utiliser un autre compilateur qui m'aurait autorisé les accès aux registres.
Je suis déçu car je croyais trouver une autre technique que celle que je connaissais déjà (devmem).
C'est même par celle-ci que j'ai commencé à m'intéresser aux GPIO.
Je pense que le sujet est clos, sauf si vous avez d'autres commentaires à me fournir.
Merci à Kaitlyn pour m'avoir ouvert les yeux sur ce que je ne voyais pas dans la bibliothèque "BCM2835".
Merci à tous les autres pour leur participation et surtout leur patience sur ce sujet technique.
P.S.: je n'ai mis que des +1.
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
Si besoin, tu peux aussi aller faire un tour dans le forum RaspBerry.
Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
Mon article sur le P2V, mon article sur le cloud
Consultez nos FAQ : Windows, Linux, Virtualisation
Schématiquement, sur le plan conceptuel, la différence entre les libs bcm2835 et libgpio n'est pas si énorme que ça :
Donc si le problème est du côté du pull-up, etc, et c'est là que la lib bcm2835 est très intéressante, on y ressent un bel effort de documentation en amont, il y a la fonction bcm2835_gpio_pud() qui montre comment faire, et que tu peux transposer sur libgpio.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 utilisateur / interface / noyau -> registres --------------------------------------------------- bcm2535 / devmem / kernel -> registres libgpio / ioctl / gpiodriver -> registres
Si le problème avec devmem c'est l'instabilité du système, tu peux faire un double mappage, tu modélises tes registres rpi dans une struct(ure) que tu mappes avec devmem, ça évitera d'écrire des choses là où il ne faut pas.
Salut à tous.
En ce moment, il n'y a pas beaucoup d'activités dans ce forum.Envoyé par Chrtophe
Ce sont surtout des débutants qui viennent poser leurs questions.
Je ne crois pas que j'aurai eu une réponse adéquate, vu que la question était technique.
Je n'ai pas de problèmes avec devmem.Envoyé par Kaitlyn
C'est juste que je ne savais pas comment accéder aux registres.
Je n'ai pas constaté d'instabilité dans la gestion des registres.
Il y a juste une gestion particulière des adresses de bases puisqu'elles dépendent du type de raspberry que tu utilises.
C'est l'idée première que j'avais, à savoir créer une structure, puisque dans le cas des GPIO, il y a 41 registres contigües.Envoyé par Kaitlyn
Mais l'accès à certains registres se font par un simple calcul où la partie entière est le offset et la partie décimal, la valeur à mettre dans le registre.
Pour d'autres, en effet, la structure sera très utile.
@+
Si vous êtes de mon aide, vous pouvez cliquer sur .
Mon site : http://www.jcz.fr
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager