Ce site utilise des cookies à des fins d'analyse, de gestion de la connexion au site marchand, au forum et de traitement d’une commande. En continuant à naviguer sur ce site, vous acceptez cette utilisation. Vous trouverez des informations détaillées sur l'utilisation des cookies dans notre politique de confidentialité.

OK Confidentialité

Pilote Linux 8.6.0 disponible

2018-07-24 • La nouvelle version du pilote PCAN-Linux disponible


Téléchargement du pilote PCAN-Linux Version 8.6.0
(2018-07-24)

Mises à jour:

  • Driver : retrait des \0 finaux aux chaines de caractères affichées par les nœuds adapter_name et adapter_version dans sysfs
  • PCAN-PCIe FD : définition des nouveaux paramètres fdirqtl et fdirqcl permettant de donner des valeurs différentes à « IRQ Time Limit » et « IRQ Count Limit ».
  • PCAN-PCIe FD : MSI: utilisation de pci_irq_vector() pour les noyaux 4.8+ sauf si le partage de MSI est configuré.
  • pcan-settings : corrige le type de l’option « -d » en « LONG » plutôt qu’en « INT ».
  • PCAN-PCIe * : renomme « PCAN_PCIE_OEM (FD) » en « PCAN_Chip_PCIe (FD) ».
  • PCAN-USB-* : rétablit le lien symbolique perdu vers le périphérique parent (réel) dans sysfs.
  • pcanfdtst.c : corrige les warnings détectés en compilant en mode RTAI.
  • Driver rt : corrige les problèmes de compilation.
  • Driver/Makefile : effectue le test sur le contenu de include/can/dev.h uniquement quand le Kernel est inférieur à 4.8.
  • Driver : ajout des compteurs d’erreurs Tx/Rx manquants à la notification périodique BUS_LOAD.
  • Driver : ajout de #ifdef NETDEV_SUPPORT autour de morceaux de code et de données inutiles lorsque le driver est compilé en mode netdev, pour économiser la mémoire.
  • PCAN-USB FD* : renforce le traitement des erreurs quand une chaine de commandes est envoyée : aucun intérêt à envoyer le reste quand une cmd a échoué.
  • PCAN-USB FD* : corrige un l’accès à un pointeur potentiellement NULL dans le traitement de UCAN_USB_MSG_CALIBRATION.
  • driver/API : ajout de PCANFD_FEATURE_ECHO et du nouveau bit PCANFD_MSG_ECHO pour explicitement demander un écho à la trame émise.
  • pcanfdtst : ajout de la nouvelle option "--echo" qui permet l’envoi de trames CAN avec un echo local.
    $ pcanfdtst tx -b 500k --echo -i 0x001 -n 100 -I 4 /dev/pcanpcifd6
    ...
    1529485528~681375 /dev/pcanpcifd6 <      001 ..h..  4 - 5e 00 00 00
    1529485528.680472 /dev/pcanpcifd6  >      001 ..h..  4 - 5d 00 00 00
    1529485528~682451 /dev/pcanpcifd6 <      001 ..h..  4 - 5f 00 00 00
    1529485528.681548 /dev/pcanpcifd6  >      001 ..h..  4 - 5e 00 00 00
    1529485528~683528 /dev/pcanpcifd6 <      001 ..h..  4 - 60 00 00 00
    1529485528.682628 /dev/pcanpcifd6  >      001 ..h..  4 - 5f 00 00 00
    1529485528~684606 /dev/pcanpcifd6 <      001 ..h..  4 - 61 00 00 00
    1529485528.683706 /dev/pcanpcifd6  >      001 ..h..  4 - 60 00 00 00
    1529485528~685684 /dev/pcanpcifd6 <      001 ..h..  4 - 62 00 00 00
    1529485528.684784 /dev/pcanpcifd6  >      001 ..h..  4 - 61 00 00 00
    1529485528~686760 /dev/pcanpcifd6 <      001 ..h..  4 - 63 00 00 00
    /dev/pcanpcifd6 < [packets=100 calls=100 bytes=400 eagain=0]
    sent frames: 100
    
  • PCAN-PCIe FD : ajout de la vérification de la version de FW pour gérer le problème de DMA issue:
    Le driver vérifie si la version du FW est < 3.3.0 pour détecter si la logique DMA inclut le problème de mélange des adresses logiques 32-bit et 64-bit.
  • PCAN-PCIe FD : attente de la fin de la transaction PCIe quand des ressources sont libérées dans la carte avant de libérer leur équivalent dans la machine.
  • Netdev : corrige une fuite mémoire and libère correctement les files de msgs wMsgs et rMsgs dans les cas d’erreur d’allocation.
  • Driver : utilise device_destroy() plutôt que device_del() (cf.: source/drivers/base/core.c: "device_destroy - removes a device that was created with device_create()").
  • sysfs : corrige l’utilisation de dev->adapter quand les nœuds sysfs sont retirés : dev->adapter peut être libéré avant les nœuds sysfs qui en dépendent.
  • driver : ajout d’une nouvelle cible « debug » au Makefile and corrige la cible « netdev ».
  • PCAN-USB * : corrige le branchement/débranchement des interfaces USB pendant qu’il y a du trafic CAN.
  • PCAN-PCI/PCIe : introduit une liste de devices pour gérer correctement la libération des ressources en cas d’erreur durant la fonction _probe().
  • Driver : supprime les anciens et inutiles #idef / #endif: considère comme si :
    • PCAN_USES_OLD_TX_ENGINE_STATE ne sera plus jamais défini.
    • PCAN_USB_PCAN_SYSFS est toujours défini.
  • PCAN-USB : corrige les cas de wrapping dans les timestamps.
  • Driver : corrige le calcul de delta_us dans pcan_sync_timestamp () pour éviter que les timestamps des événements ne soit antérieur au timestamp de synchronisation.
  • Driver : corrige timeval_add_us () pour gérer correctement les valeurs négatives du nombre de µs à ajouter.
  • Driver : la correction des timestamps est maintenant effectuée dans le contexte de l'utilisateur plutôt que dans le contexte interruptif pour économiser du temps CPU.
  • PCAN-USB : correction d'un problème de régression avec PCAN-USB à 1 Mbits / s, d’un problème de wrapping 8 bits des timestamps et amélioration de la gestion de la réception.
  • Mode CONFIG_COMPAT du pilote : correction de copy_to_msg32().
  • Driver / API : ajout du support pour SET et GET_OPTION en mode CONFIG_COMPAT.
  • Driver : ajout des identifiants SPDX aux fichiers d’en-têtes et C.
  • Driver : inclut les derniers fichiers d'en-tête de linux-can à la place des (très) anciens. Cela permet également d'inclure la dernière licence GLPv2.
  • PCAN-PCIe * : inclut une solution de contournement du problème MSI autour de can0 IRQ : dorénavant l’IRQ de can0 est toujours la dernière IRQ libérée :
    • Si PCAN_PCI_MSI_WORKAROUND n'est pas défini, les IRQ sont demandées (ou libérées) à l'instant _open () (ou _close ()), comme précédemment.
    • Si PCAN_PCI_MSI_WORKAROUND est défini, alors:
      • si usemsi (fdusemsi) est égal à 0, alors les IRQ sont demandées (ou libérées) à _open () (resp (_close ()).
      • sinon, les IRQ sont demandées (ou libérées) à l'instant _probe () (ou _exit ()).
    Étant donné que ce problème a été vu sur x86, alors PCAN_PCI_MSI_WORKAROUND est défini uniquement lorsque CONFIG_X86 l’est.
  • Driver : inclut la prise en charge de la nouvelle API Timer depuis le noyau 4.15 (Ubuntu 18.04 LTS).
  • Driver / API : change la façon dont STATUS [PCANFD_BUS_LOAD] est notifié :
    Le pilote configure maintenant son propre timer pour envoyer le message STATUS [PCANFD_BUS_LOAD] seul. Ce message n'est plus poussé par l’ISR du périphérique.
    Cela permet de limiter l'inondation de la file d'attente Rx et de s'assurer que le message sera toujours poussé. Le timer est arrêté lorsque le périphérique est fermé.
    Ce timer est configuré et démarré si l'indicateur PCAN_DEV_BUSLOAD_RDY est défini uniquement.
  • Driver : corrige le bus_load : la valeur doit être 100x plus grande.
  • PCAN-USB * : force le bit GFP_DMA pour l'allocation du tampon de données du URB.
  • PCAN-USB : revue complète de la gestion des timestamps pour gérer les décalages d’horloges via le système de timestamp global du pilote.
  • PCAN- * FD : correction de l'analyse des tampons uCAN entrants avec l'alignement sur frontière 32 bits.
  • Driver / API : initialise avec les paramètres par défaut quand aucun bitrate ou brp n'est donné par l'utilisateur.
  • PCAN-USB * : correction de l'utilisation de read_buffer_len dans le tampon de réception USB (certains msgs pouvaient ne pas pu être lus entièrement).
  • Driver : utilise une valeur de puissance de 2 pour échelonner clock_drift afin d'économiser le temps CPU dans la gestion des timestamps en ISR.
  • Driver / Makefile : utilise "modprobe", "udevadm" et "depmod" au lieu du chemin absolu des fichiers exécutables.
  • Pcanfdtst : la valeur dsample_pt par défaut est forcée à sample_pt si dsample_pt n'a pas été indiqué sur la ligne de cmd.
  • Driver : améliore la façon dont les paramètres init sont vérifiés et traités avant d'ouvrir un canal : dorénavant, toute valeur erronée génère -EINVAL.
  • lib / pcanfd_open () : traite les indicateurs SAMPLEPT uniquement lorsque les valeurs BITRATE sont données (le traitement du sample point utilisateur n'a aucun sens si on utilise les arguments BRP, TSEGx et SJW).
  • Driver : restaure les paramètres par défaut lors de la dernière fermeture au lieu de conserver les paramètres actuels.
  • Driver / API : correction d’un bogue potentiel : le sample_point ne DOIT PAS être supérieur à PCAN_SAMPT_SCALE.
  • Driver: correction d’un format de chaîne DEBUG dans la compilation 32 bits
  • PCAN-USB * : améliore la gestion des timestamps pour qu'ils soient compatibles avec les machines virtuelles.
  • PCAN-USB * : demande des msg d'étalonnage à _init () plutôt qu'à _open () afin que les horloges soient stabilisées et que les décalages des horloges soient fixes à l’ouverture du canal.
  • PCAN-USB * : corrige les Oops potentiels du noyau dans pcan_poll lorsque l'application utilise select () et que le périphérique USB est débranché.
  • Driver : remplace mdelay () par msleep_interruptible () pour économiser le temps processeur dans les contextes hors interruption.
  • PCAN-USB * : corrige l'adresse d’URB à partir du tas plutôt que de la pile.
  • PCAN-USB * : ajout jusqu'à 2 tentatives lorsque de l’écriture d’un URB, en cas de time out. Ce correctif devrait suffire pour que le PCAN-USB Pro s'exécute dans VM.
  • Driver / API : correction d'un bug pouvant conduire à envoyer un message CAN FD avec data_len > 8 et / ou BRS alors que le canal n'était pas ouvert en mode CAN FD.
  • pcanfdtst.c : ajout option --play-forever : alors que --play lit une seule fois un fichier et s'arrête à la fin, --play-forever boucle la lecture depuis le début.
  • SJA1000 * : correction d'un bug potentiel pour tous les périphériques internes basés sur SJA1000 : pas d'autre choix possible autre que l'horodatage "logiciel" pour ces périphériques.
  • pcanfdtst.c : ajout d’un moyen de ctrl du format de sortie des lignes affichées (voir : % date --help)
  • pcanfdtst.c : ajout de l'option --filler et du mode «rec» pour définir la façon dont les données sont remplies, et pour enregistrer les données dans un fichier qui pourrait être joué ensuite.
  • pcanfdtsts.c : maintenant les trames peuvent être envoyées ET vérifiées en incrémentant l'identifiant CAN et/ou le DLC.
  • Driver / API : suppression de la notification PCANFD_TX_OVERFLOW inutile en mode bloquant.
  • pcandfdtst.c : ajoute les nouveaux modes setopt et getopt pour définir / obtenir la valeur des OPTIONS du pilote.
    Usage:
    $ pcanfdtst getopt --opt-name x / dev / pcan
    $ pcanfdtst setopt --opt-name x --opt-valeur aaaa / dev / pcan
  • PCAN-Chip USB : Correction du nom en PCAN-Chip
  • PCAN-Chip FW 3.3.0 : inclut la gestion complète des E / S numériques / analogiques.
    (voir aussi les options PCANFD_IO_xxx dans pcanfd.h)
  • Driver : change la façon dont ENOSPC est géré dans le traitement des options : lorsque l'utilisateur fournit un tampon trop petit, -ENOSPC est retourné et le champ « size » du pointeur opt est mis à jour avec la valeur requise. Libpcanfd a été changé aussi. Maintenant, l'application utilisateur sait quelle taille doit être allouée.
  • Driver / API : ajout de 2 options pour lire les versions FW et DRV.
  • Driver : correction de l'utilisation de sjw dans les conversions bittiming du SJA1000
  • Driver : corrige la conversion du sample_point entre pcan et linux-can: pcan utilise 3 décimales alors que linux-can en utilise 2.
  • Driver : correction d'un problème de conversion de bitrate : ajout de sjw en tant que paramètre pour convertir certaines valeurs de BTR0BTR1. Les versions précédentes considéraient la valeur par défaut de sjw (= 1) pour l'affichage.
  • pcanfdtst.c : ajout de l'option -E --esi pour définir le bit ESI dans les trames émises.
  • Netdev : utilise jiffies uniquement pour les Kernels > 4.7 (suppression du support des vieux noyaux, pour quelque chose qui n'est pas utilisé ailleurs ...)
  • Driver / Makefile : suppression du commentaire en fin de ligne qui pouvait conduire à une erreur de compilation.
  • PCAN-USB * : corrige la lecture et le paramétrage de l'identifiant de périphérique USB en bouclant l'envoi de la requête en cas de ETIMEDOUT.
  • PCAN-USB * : utilisation d’une méthode plus moderne pour dialoguer avec les périphériques USB par le biais de usb_bulk_msg().
  • pcan-settings : ne retourne plus "errno" mais 0.
  • pcanfdtst.c : n'échoue pas en cas de timeout s'il n'attend pas un nombre donné de trames (c’est-à-dire, quand -n n'est pas utilisé sur la ligne cmd).
  • PCAN-USB X6 : correction du commentaire dans la règle Udev le concernant.
  • Sysfs : l'entrée "devid" n'existe que si devid a un sens pour l’interface CAN.
  • pcanfdtst.c : utilise alarm () et signal (SIGALRM) pour configurer une durée maximale de fonctionnement.
  • pcanfdtst.c : change la signification de l'option "-n xxx" : dorénavant elle définit le nombre de trames CAN au lieu du nombre de boucles.
  • Driver : change le bon vieux système d’énumération. Dorénavant, les intervalles correspondant aux types des interfaces sont :
    0     31      PCI/PCIe
    32   63      USB
    64   71      PC-CARD
    72   79      ISA/PC104
    80   87      DNG SP
    88   95      DNG EPP
    
    Pour restaurer l'ancien système, construire pcan avec:
    $ make NEW_DEVNUM_SCHEME=NO
    0      7       PCI/PCIe
    8     15      ISA/PC104
    16   23      DNG SP
    24   31      DNG EPP
    32   39      USB
    40   47      PC-CARD
    
  • Driver / API : ajout d’un bit PCANFD_FEATURE_SELFRECEIVE indiquant que le périphérique est capable de s'envoyer lui-même des trames.
  • Driver / API : HW_PCI_FD renommé en HW_PCIE_FD qui est plus proche de la réalité (pcan.h définit toujours HW_PCI_FD comme HW_PCIE_FD, pour des raisons de compatibilité).
  • pcanfdtst.c : ajout de l’option -M | --max-duration qui permet à l'utilisateur de définir le nombre maximal de s. pendant lequel l'application doit fonctionner.
    Si cette durée est atteinte avant la fin du test, l'application renvoie 1.
  • Lib : correction de pcanfd_open () qui appelle dorénavant inconditionnellement ioctl (SET_INIT) après l'appel système open().
  • Netdev : correction de l'utilisation des indicateurs socket- CAN CTRLMODE_LISTEN_ONLY et _FD_NON_ISO.


Télécharger - le pilote PCAN-Linux
Site Internet Linux PEAK-System - Plus d'informations