Quelle est une bonne référence pour le pilote Ethernet sans système d'exploitation?

8

Bientôt, je travaillerai sur une implémentation Ethernet pour une capacité sans système d'exploitation (sans OS) sur un processeur ARM. Je connais quelque peu le modèle de pilote Ethernet dans le livre Linux Device Drivers, mais je me demande s'il existe une référence pour implémenter un pilote Ethernet pour un SoC exécuté avec une pile logicielle personnalisée.

Existe-t-il des implémentations de référence pour les processeurs d'architecture ARM, ou existe-t-il des conseils sur la façon d'implémenter un pilote Ethernet sur un processeur ARM?

netskink
la source
3
Quel type de SoC avez-vous en tête? Je soupçonne que beaucoup fourniront une implémentation de référence s'ils prennent en charge la mise en réseau.
Aurora0001
1
Atmel, TI, etc. Ce sera ARM mais je ne sais pas quel fournisseur. Avez-vous des suggestions?
netskink
Il est difficile de dire sans un peu plus de contexte sur votre cas d'utilisation. Jetez un œil au wiki de balises [hardware] pour savoir comment poser une question de sélection de matériel , ou peut-être jetez un œil à Sélection d'un microcontrôleur pour un projet de collecte de données sur batterie . Si vous voulez des conseils, n'hésitez pas à poser une autre question tant que vous incluez vos exigences!
Aurora0001
6
En règle générale, il est préférable d'expliquer pourquoi vous faites quelque chose dans le cadre de votre question, plutôt que de ne poser que la question à laquelle vous êtes arrivé à la fin de votre processus. Quelqu'un pourrait alors être en mesure de suggérer une approche différente (si vous avez fait une supposition inexacte dans votre raisonnement).
Sean Houlihane
Notez que les solutions réseau "embarquées" de classe microcontrôleur ne sont pas nécessairement toujours moins chères que les petites "systèmes d'exploitation complets" fonctionnant sur des puces de base. Les deux ont tendance à être douloureux - les petits systèmes pour être configurés avec les services dont vous avez besoin, surtout s'il y a des changements à mi-parcours par rapport à l'exigence d'origine ou tout ce qui ne se comporte pas comme annoncé, tandis que l'approche du système d'exploitation complet peut prendre beaucoup de temps pour lutter contre l'essentiel que vous voulez, sans composants ou services indésirables.
Chris Stratton

Réponses:

3

Il est un peu difficile de dire ce que vous recherchez lorsque vous demandez du métal nu, en particulier lorsque vous ne spécifiez pas l'architecture ...

Pour une application intégrée, utilisant un système d'exploitation léger (selon ce que vous considérez comme un système d'exploitation), recherchez la source mbed pour un périphérique similaire à celui qui vous intéresse (en supposant un microcontrôleur ARM Cortex-M).

La dernière documentation mbed Network Sockets est ici bien qu'elle ne décrive pas les implémentations HAL qui sont spécifiques aux périphériques (celles-ci sont probablement fournies par les fabricants de périphériques).

Celui-ci peut être suffisamment proche du métal nu pour être utilisé directement. À défaut, le fournisseur de l'appareil fournira presque certainement un exemple d'implémentation de bas niveau dans son propre cadre.

Sean Houlihane
la source
2
À défaut, le fournisseur de l'appareil fournira presque certainement un exemple d'implémentation de bas niveau dans son propre cadre. Avec beaucoup de SBC chinois, comme ceux basés sur des puces Allwinner, vous avez de la chance s'ils vous fournissent un binaire Linux fonctionnel.
DepressedDaniel
@DepressedDaniel - L'OP semble poser des questions sur un SoC qu'il prévoit d'intégrer dans un appareil, plutôt que sur un SBC pré-construit basé sur un processeur de téléphone. Il demande également où chercher avant de sélectionner son fournisseur ....
Sean Houlihane
1
Sean qui ressemble à un bon exemple d'implémentation à utiliser. Je signalerai cette réponse comme la bonne réponse à cela. Alternativement, j'allais regarder quelque chose comme freeRTOS mais je n'ai pas encore commencé à regarder le code. Je suis également intéressé par un wiki, un document en ligne ou un livre à ce stade. Quelque chose que je pouvais lire avant de sauter dans le code. Avez-vous également une bonne suggestion à ce sujet?
netskink
@netskink Désolé, l'implémentation du pilote n'est pas mon domaine. Ajout d'un lien vers la documentation utilisateur, je pense que cela aide.
Sean Houlihane
1
Merci Sean. Vos réponses m'ont beaucoup aidé. Je vous en suis reconnaissant.
netskink
4

Si vous êtes sûr d'utiliser ARM, vous pouvez consulter les pilotes Ethernet Keil pour ARM . C'est assez prometteur.

RL-TCPnet comprend plusieurs pilotes de réseau Ethernet. Ils se trouvent dans le répertoire \ Keil \ ARM \ RL \ TCPnet \ Drivers:

  • LAN91C111.C - pour le contrôleur Ethernet SMSC LAN91C111 utilisé sur la carte d'évaluation Phytec phyCore LPC229x.
  • EMAC_SAM7X.C - pour le contrôleur Ethernet EMAC sur puce Atmel AT91SAM7X utilisé sur la carte d'évaluation Atmel AT91SAM7X-EK.
  • STR9_ENET.C - pour le contrôleur Ethernet ENET sur puce ST STR912 utilisé sur la carte d'évaluation Keil MCBSTR9.
  • LPC23_EMAC.c - pour les contrôleurs Ethernet EMAC sur puce NPC (fondés par Philips) LPC2368 et LPC2378 utilisés sur la carte d'évaluation Keil MCB2300.
  • LPC24_EMAC.c - pour les contrôleurs Ethernet EMAC sur puce NPC (fondés par Philips) LPC2468 et LPC2478 utilisés sur la carte d'évaluation Keil MCB2400.
  • LM3S_EMAC.c - pour les contrôleurs Ethernet EMAC sur puce Luminary Micro LM3S6962 et LM3S8962 utilisés sur les cartes d'évaluation Luminary Micro EK-LM3S6965 et EK-LM3S8962.

Comme vous pouvez le voir, il existe des exemples de pilotes Ethernet pour différentes cartes d'évaluation qui ont différentes puces de différents fabricants. Comme Atmel, NXP ou ST Microelectonics.

Bence Kaulics
la source