2009-10-05 7 views
11

Je dois produire une conception ARM intégrée qui a des exigences pour faire beaucoup de choses que Linux embarquerait. Cependant, la conception est sensible aux coûts et n'a pas besoin d'énormes quantités de chevaux. Surtout parlera aux interfaces série. Idéalement, je voudrais utiliser l'un des ARM bas de gamme. Quelle est la configuration la plus basse d'un ARM sur lequel vous avez utilisé Linux embarqué avec succès.Configuration minimale pour exécuter Linux intégré sur un processeur ARM?

Edit:

L'application a besoin d'un système de fichiers sur une sorte de dispositif de flash et la possibilité d'exécuter des applications de traitement des données. Certaines applications peuvent être écrites par d'autres que moi-même. J'ai également besoin de pouvoir charger de nouvelles applications ou mettre à jour d'anciennes applications en utilisant les ports série pour accepter les applications.

Quand je l'ai regardé d'autres systèmes d'exploitation embarqués, ils semblent être plus d'un temps réel solution de filetage que d'avoir la capacité d'exécuter des applications. Je suis ouvert à tout ce qui va faire le travail.

+0

Pouvez-vous fournir quelques informations sur l'application? Si vous vous contentez de parler à quelques périphériques série et de transmettre des informations autour de ARM + linux, vous risquez de perdre en complexité et en coût, surtout si vous n'êtes pas familier avec les chaînes d'outils et la configuration du système d'exploitation. – Mark

Répondre

12

Je pense que vous devez peser vos options de coût ici.

ARM + linux est une option, mais vous allez payer un très haut frais généraux d'exploitation pour un simple (à partir de votre description) ensemble de fonctionnalités. Vous ne pouvez pas seulement regarder le coût de la puce ARM, mais vous devez également considérer la RAM externe qui sera très probablement nécessaire ainsi que le flash pour avoir suffisamment d'espace disponible pour exécuter les applications du noyau +.

REMARQUE: vous pouvez être en mesure d'éviter les exigences externes avec un noyau très minime et des applications simples combinées avec un uC avec de grandes ressources internes.

Une deuxième option est un microcontrôleur beaucoup plus simple avec un OS léger. Cela réduira vos coûts de matériel sur le CPU et vous pouvez probablement exécuter quelque chose comme ça sans RAM ou flash externe (en fonction de la RAM de l'application et de l'espace requis)

troisième option: je ne vois rien dans vos exigences exige tout OS à tous être utilisé. Les systèmes de fichiers de base sont très simples, par exemple il existe même des pilotes FAT pour les PICs 8 bits. L'interfaçage avec une carte SD nécessite uniquement un port SPI et un circuit externe minimal.

Le bit d'application peut être simple ou complexe. J'ai construit des systèmes autour des microcontollers PIC18 qui exécutent un serveur web et permettent des mises à jour de programme via un simple écran de téléchargement, il stocke simplement le nouveau programme dans une mémoire EEPROM ou flash, redémarre dans un bootloader et copie le nouveau programme dans la mémoire interne du programme. Vous pourriez probablement concevoir un moyen de le faire sans le redémarrage via une architecture coopérative multitâche. De toute façon, les programmeurs qui écrivent les applications auront besoin de connaître l'architecture et l'accès aux bibliothèques/pilotes que vous écrivez. Votre meilleur pari pour simplifier ceci est de fournir une API aussi simple que possible et d'essayer d'automatiser le processus de construction pour eux.

La troisième option sera "la moins chère" en termes de matériel car il y aura très peu de frais généraux dans le traitement de vos applications vous permettant de vous en sortir avec une puissance de traitement et une mémoire minimales. Il faudra probablement plus de programmation/architecture de logiciel de votre part, mais n'exigera pas presque la recherche que vous aurez besoin d'entreprendre pour faire fonctionner Linux en plus d'apprendre à écrire les pilotes de périphériques nécessaires sous un paradigme Linux.

Comme toujours, vous devez inclure les coûts de développement logiciel dans le coût de construction de l'appareil. Si vous envisagez d'en construire plus de 10 000, mieux vaut probablement réduire les coûts de matériel et mettre plus de puissance dans la conception d'une solution logicielle permettant à ce matériel d'atteindre les objectifs de conception. Si vous construisez 10 d'entre eux, mieux vaut dépenser 15-20 $ de plus pour le matériel si cela peut réduire les coûts de développement de votre logiciel. Par exemple, un ARM avec MMU avec prise en charge complète du noyau Linux et pilotes de périphériques disponibles.

J'ai l'impression que vous choisissez le pire des deux mondes en ce moment, votre paiement supplémentaire pour obtenir un UC, vous pouvez exécuter Linux mais en faisant ainsi votre sélection également une partie qui sera probablement le plus complexe à obtenir Linux en cours d'exécution, en particulier n'ayant pas travaillé avec linux sur des plateformes embarquées auparavant.

2

J'ai eu du succès même sur ARM7TDMI, donc je ne pense pas que vous ayez de problème. Si vous avez un système à faibles exigences, vous pouvez utiliser n'importe quel type de cadre en temps réel léger et avoir une meilleure expérience que Linux.

2

Je l'ai utilisé un TS-7200 pendant cinq ans sur le point d'exécuter un serveur web et serveur de messagerie, en utilisant Debian GNU Linux. Il est de 200 MHz et a 32 Mo de RAM, et est tout à fait suffisant pour ces tâches. Il a un port série intégré. Il est basé sur un ARM920T.

Ce serait exagéré pour votre travail; Je le mentionne donc vous avez un autre point de données.

2

ucLinux est conçu spécifiquement pour cibles contraintes de ressources, mais peut-être plus important encore pour les cibles sans MMU.

Cependant, vous devez avoir une bonne raison d'utiliser Linux sur un tel système plutôt que d'un petit exécutif en temps réel. La mise en réseau prête à l'emploi, les pilotes et les piles de protocoles facilement disponibles pour le matériel complexe et la prise en charge de l'héritage existant POSIX ou du code source ouvert sont peut-être quelques-uns. Cependant, si vous n'en avez pas besoin, Linux est toujours important et vous risquez de gaspiller des ressources sans réel bénéfice. Dans la plupart des cas, vous aurez toujours besoin de SDRAM et de Flash hors puce si vous choisissez Linux.

Je ne considérerais pas de série E/S comme « matériel complexe », donc à moins que vous utilisez un protocole complexe, mais standard, votre brève description ne semble pas justifier l'utilisation de Linux OMI

2

Depuis plusieurs années, J'ai utilisé a gumstix pour faire du prototypage et des tests et j'ai eu de bons résultats avec. Je ne sais pas si le processeur qu'ils utilisent (Intel PXA255 sur ma carte) est considéré comme bon marché, mais l'ensemble de la ligne Verdex me semble plutôt bon marché pour un appareil adaptable.

0

Mon routeur DLINK DIR-320 exécute Linux à l'intérieur.

Et je connais quelques bricoleurs qui clignotent avec Optware et qui connectent le concentrateur USB, les disques durs, le flash USB et bien plus encore.

Il est prêt à l'emploi "plate-forme". (Si vous n'avez pas besoin de production de masse). Mais peut-être plus puissant que ce dont vous avez besoin.

De plus, il peut être configuré sans fil via interface web même à travers votre pda :)

Questions connexes