Question

Je cherche à en savoir plus sur la programmation intégrée (principalement en C, mais j’espère aussi mettre à jour mon ASM) et je me demandais quelle serait la meilleure plate-forme. J'ai déjà utilisé Atmel AVR et programmé avec le stk500, ce qui est relativement facile. J'aime particulièrement AVR Studio et le débogueur qui vous permet de visualiser cet état des registres.

Cependant, si je prenais le temps d'apprendre, je préférerais en apprendre davantage sur quelque chose qui prévaut dans l'industrie. Je pense à ARM, sauf si quelqu'un a une meilleure suggestion.

Je voudrais aussi chercher du matériel de référence, j'ai trouvé la section des livres sur le site Web d'ARM et si un livre est techniquement meilleur qu'un autre, j'apprécierais un heads-up.

La dernière chose que je voudrais rechercher est un tableau de prototypage / programmation tel que le STK500 doté de boutons, etc.

Merci =]

Était-ce utile?

La solution

" programmation intégrée " est un terme très large. AVR fait assez bien partie de cette catégorie, mais il est inférieur à ARM, car il est à la fois plus simple à utiliser et moins puissant.

Si vous voulez juste jouer avec ARM, achetez une Nintendo DS ou une Gameboy Advance. Celles-ci sont très bon marché par rapport au matériel interne (merveilles de la production de masse), et elles sont toutes deux chaînes de développement gratuites . hors de gcc qui peut les compiler.

Si vous souhaitez vous amuser avec Linux intégré, BeagleBoard cherche à être une bonne option, à seulement 150 $ et plus. a une tonne de fonctionnalités.

Personnellement, je pense qu'AVR est ce qu'il y a de mieux pour les plates-formes 8 bits plus petites et ARM, pour les plates-formes 32 bits plus grandes et plus puissantes. Comme beaucoup de fans d’AVR, je n’aime pas le PIC. Cela semble pire dans presque tous les domaines. Evitez également tout ce qui vous oblige à écrire tout type de BASIC.

Autres conseils

Si vous voulez juste jouer avec ça, je suggérerais la plateforme Arduino ( http: //www.arduino. cc ). Il est basé sur ATmega168 ou ATmega8, selon la version. Il utilise un langage de type C et possède son propre IDE.

Moi-même, je travaille dans la programmation intégrée depuis 9 ans et j'ai de l'expérience sur TI MSP430, Atmel AVR (deux versions) et utiliserai bientôt un bras.

Ma suggestion est de sélectionner quelque chose qui présente certaines fonctionnalités supplémentaires dans le processeur, telles que le contrôleur Ethernet et le contrôleur CAN, voire même en avoir deux ou trois si vous le pouvez. Il est agréable de travailler avec les appareils intégrés, mais une fois qu’ils peuvent parler à d’autres appareils similaires via CAN ou se connecter à un réseau, ils peuvent devenir beaucoup plus amusants à jouer.

ARM possède le plus bel ensemble d’instructions des plates-formes embarquées largement utilisées, ce qui vous permet de saisir les principes généraux de l’écriture de logiciels pour plates-formes embarquées sans vous embourber dans des détails étranges tels que des registres non orthogonaux ou des créneaux de retard de branche. Il y a beaucoup d'émulateurs - ARM, bien que non gratuit, est précis pour le cycle; et une grande variété de matériel ARM programmable est bon marché et facile à trouver.

La Blackfin d'ADI est une autre option, car il s'agit d'une architecture assez simple à programmer, mais qui peut également faites des choses DSP assez lourdes si vous choisissez de suivre cette voie. Il est utile que le langage d'assemblage soit également sain d'esprit.

Les panneaux STAMP de Blackfin sont peu coûteux (environ 100 $ dernier contrôle). , et ils supportent les outils gratuits GCC et uClinux.

Quelle que soit l’architecture que vous choisissez, je vous recommanderais tout d’abord de télécharger le toolchain \ SDK et de parcourir les exemples de projets et de didacticiels - en général, vous amuser un peu. Vous pouvez souvent vous familiariser avec l’architecture par la simulation sans même toucher à aucun matériel.

Le TI MSP430 est une excellente plate-forme pour apprendre à programmer des microcontrôleurs. TI dispose d'une variété de Outils GRATUIT et certains cartes d’évaluation pas chères (à partir de 20 $). De plus, il s'agit d'un microcontrôleur moderne à faible consommation d'énergie.

Un bon choix serait PIC18 de Microchip

  • Il contient beaucoup de matériel, de documentation, de tutoriels et de projets sur Internet

  • IDE libre et compilateur.

  • vous pouvez créer votre propre graveur flash en quelques minutes. (Bien qu'un débogueur fonctionne, vous devrez travailler plus fort)

  • Si vous êtes un étudiant (ou avez une adresse e-mail d'étudiant), Microchip vous enverra des échantillons gratuits. Donc, en gros, vous pouvez avoir un environnement de développement complet pour presque rien.

  • Les PIC sont très répandus dans l'industrie. Spécifiquement en tant que contrôleurs pour des robots pour une raison quelconque bien qu'ils puissent faire beaucoup plus.

Arduino semble être la plate-forme de choix pour les débutants bien qu'il y en ait beaucoup d'autres. J'aime les Olimex personnellement, mais ils ne sont pas vraiment pour les débutants.

La gamme de processeurs PIC de Microchip est également excellente pour les débutants, en particulier si vous souhaitez programmer assembleur.

BTW, Assembler n’est plus aussi utilisé qu’avant. La règle générale avec Embedded est que si vous avez 4 Ko de mémoire ou plus, utilisez C. Vous obtenez la portabilité et vous pouvez développer du code plus rapidement.

Je suppose que cela dépend de votre niveau de compétence et de ce que vous voulez faire avec la puce. Je choisis généralement la puce intégrée à utiliser par les périphériques disponibles. Si vous voulez un port USB, trouvez-en un avec USB intégré, si vous voulez de l'analogique au numérique, trouvez-en un avec un ADC, etc. Si vous avez une application simple, utilisez un 8 bits, mais si vous avez besoin d'un numéro sérieux crunching, allez 32 bits.

Je voudrais suggérer le beagleboard de TI. Il a un Omap3 dessus. C’est un processeur Cortex-A8 ARM11, un DSP C64x + et un accélérateur vidéo.

La carte n'a pas besoin d'un périphérique jtag coûteux. Un câble série et une carte SD sont tout ce dont vous avez besoin pour commencer. Le conseil ne coûte que 150 dollars et la communauté est très active.

www.beagleboard.org

Vous avez en quelque sorte répondu à votre question dans cette question .

Pour ajouter à cela, le secteur des processeurs embarqués est très segmenté, il n’a pas d’acteur majeur comme Intel / x86 pour le & "desktop &"; industrie du traitement. Le processeur ARM a une part importante, tout comme MIPS, et de nombreux microcontrôleurs plus spécifiques, tels que des puces, sont disponibles (comme le MSP430, etc. de TI).

En ce qui concerne la documentation, je fais du développement intégré pour un travail journalier, et la documentation à laquelle nous avons accès (en tant que développeurs de logiciels) est plutôt clairsemée. La meilleure solution consiste à utiliser la documentation disponible sur le site du fabricant du processeur.

Consultez le Processing et les cartes Arduino et Wiring associées.

Si vous voulez juste vous amuser, essayez la puce Propax Parallax. La plateforme de jeu HYDRA ressemble à une explosion. Il existe actuellement un compilateur à 100 $ C.

J'ai commencé par les tampons BASIC, puis par les puces SX et les PIC en 8051, puis en 68332, par divers DSP, processeurs logiciels FPGA, etc.

Les 8051 sont plus utiles dans le monde réel ... les choses ne vont pas disparaître. Il y a des tonnes de dérivés et de trucs fous pour eux. (Restez à l’écart du DS80C400) Le secteur de l’énergie en est absolument rempli.

Commencez avec quelque chose de petit. Si vous avez de la RAM externe et de nombreux registres ... Quelle est la différence entre cela et un SBC?

Il y a de nombreuses lunes, j'ai travaillé avec 8 bitters comme 68HC05 et Z80, plus tard AVR et MSP430 (16 bits). Cependant, les projets les plus récents portaient sur ARM7. Plusieurs fabricants proposent des contrôleurs ARM, de toutes les couleurs et de toutes les tailles (enfin, pas vraiment en couleur).

ARM (7) remplace l'architecture 8 bits: il est plus performant (RISC 32 bits à cycles d'instruction plus rapides que la plupart des 8-bitters), dispose de plus de mémoire et est disponible avec plusieurs configurations d'E / S. J'ai travaillé avec les contrôleurs NXP LPC2000, qui sont également peu coûteux (& Lt; 1 USD pour un 32-amer!).

Si vous êtes en Europe http://www.olimex.com/dev/index .html contient de belles cartes de développement à faible coût. Fonctionne également dans le reste du monde: -)

Pour un projet amusant à tester, consultez xgamestation

Mais pour une programmation de solution monopuce utilisée de manière plus industrielle, consultez PIC

Pour mon cours d'architecture informatique, je devais travailler avec un PIC et un AVR; à mon avis, le PIC était plus facile à utiliser, mais c'est peut-être parce que c'est avec cela que nous avons le plus travaillé et que nous avions le plus de temps pour nous habituer. Nous n’avions peut-être utilisé l’AVR que quelques fois et je n’étais donc pas parfaitement au courant, mais ce n’était également pas trop compliqué, ni du moins pas plus frustrant que les autres.

Je pense que vous pouvez également commander des échantillons de microprocesseur sur le site Web de Microchip afin de pouvoir commencer avec cela?

Deuxièmement, cela:

Plate-forme Arduino http://www.arduino.cc

HTH

Pour apprendre, vous ne pouvez pas dépasser l'AVR. Les puces sont économiques et fonctionnent sans aucun composant externe. Elles fournissent également suffisamment de courant pour piloter une LED directement depuis le port.

Vous pouvez commencer avec un programmeur bon marché, tel que de Lady Ada (22 USD) pour un kit) qui peut alimenter votre carte avec 5V à partir du port USB. Obtenez les outils gratuits WinAVR (basé sur GCC) et AVRStudio et faites fonctionner un petit projet en un rien de temps.

Oui, les AVR ont des limites - mais développer un logiciel pour les microcontrôleurs consiste principalement à gérer les ressources et à faire face à ces problèmes. Il est peu probable que vous rencontriez des problèmes tels que le manque d'espace de pile, de RAM ou de ROM lorsque vous réalisez des projets hobbistes pour de puissantes plateformes ARM.

Cela étant dit, ARM est également une excellente plate-forme largement utilisée dans le secteur. Cependant, pour apprendre, je recommande fortement les AVR.

Je suggérerais la série PIC18F de Microchip. Je viens juste de commencer à développer pour eux avec l’émulateur de circuit RealICE, mais le pickit2 est un bon débogueur pour le prix. Vous pouvez également dire ceci pour l'AVR, mais il existe un nombre important de lecteurs pour le périphérique sur le Web. Grâce à toutes les discussions relatives aux PIC, j'ai pu disposer d'un périphérique USB intégré (buggy, mais fonctionnel) en quelques jours.

La seule chose que je n’aime pas avec les PIC, c’est que la plupart des exemples de code sont TRÈS entrelacés dans les planches de démonstration. Cela peut compliquer la tâche de supprimer les sections dont vous avez besoin tout en conservant une application à créer et à exécuter pour votre application.

Texas Instruments a publié un kit de développement très intéressant à un prix très bas: L'outil de développement eZ430-Chronos contient un MSP430 avec écran et divers capteurs dans une montre de sport, y compris un programmateur de débogage USB et un point d'accès radio USB pour 50 $

Il existe également un wiki contenant de nombreuses informations. .

J'ai déjà créé une proposition de stackexchange pour le eZ430-Chronos Kit.

Vous devriez essayer d'apprendre des kits de développement fournis par Artistes intégrés . Après avoir obtenu le kit, consultez leurs vidéos d’instruction et celles fournies par NXP, qui ne sont pas aussi détaillées qu’elles pourraient l’être, mais qui couvrent beaucoup de choses. Les problèmes d’apprentissage d’ARM en tant que première architecture et d’essayer de faire quelque chose de pratique sont les suivants:

  • Vous devez acheter dev. kit.
  • Vous avez besoin d'un bon livre pour apprendre l'assemblage ARM, car tôt ou plus tard, vous rencontrerez le code de démarrage ARM, ce qui est tout à fait une affaire pour un débutant. Le livre que j'ai mentionné couvre également une partie de la programmation en langage C.
  • Combinez le livre mentionné ci-dessus avec un guide de l'utilisateur pour votre processeur spécifique, tel que celui-ci . Assurez-vous de bien comprendre le fait que l’étude combinée avec le livre ci-dessus est la seule façon d’apprendre votre procédé ARM. en détail.
  • Si vous souhaitez effectuer un transfert de la structure ARM vers la programmation C, vous devez lire ceci book , qui couvre un processeur ARM différent mais est plus facile pour le débutant en C. L’inconvénient est qu’il n’explique aucun assemblage ARM, mais c’est pourquoi vous avez besoin du premier livre.

Il n'y a pas de moyen facile.

mikroElektronika a un joli bras forums et C, Pascal et Basic compilateurs susceptibles de répondre à vos exigences.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top