Bonjour,

Je suis actuellement en train de faire le portage d'une pile de protocole CAN sur une carte Phytec (Phyflex imx6 [quad core, arm9]) qui utilise un noyau linux (Linux Kernel 3.0.35). Je cherche à communiquer avec le driver can de ma carte pour pouvoir adapter ma pile de protocole en C en partant de la couche la plus basse (proche du materiel). Pour cela après plusieurs recherches sur internet, j'ai découvert qu'on pouvait utiliser la fonction ioctl, cependant je n'ai absolument rien compris à l'histoire du magic number mentionné pour son utilisation.

Je précise que j'ai déjà utilisé une socket can (qui fonctionne très bien, envoie et reception de trames) mais que je ne peux les intégrer à ma pile étant donné que je cherche à avoir le plus de liberté possible au niveau de l'utilisation de mon driver. J'ai vu qu'il y'avait déjà eu un sujet sur le baudrate (que je cherche aussi à modifier) mais qui utilisait une astuce consistant à utiliser exec (dans mon cas j'ai utilisé system() mais ça ne correspond pas au niveau d'exigence du fonctionnement de l'application qui utilisera la pile de protocole).

Si quelqu'un pouvait m'expliquer comment utiliser la fonction ioctl ou alors me proposer une solution alternative, ça serait formidable

Merci.