La meilleure plateforme pour apprendre la programmation intégrée? [fermé]
je cherche à en savoir plus sur la programmation embarquée (en C principalement, mais j'espère aussi réviser mon ASM) et je me demandais quelle serait la meilleure plateforme. J'ai une certaine expérience dans L'utilisation D'Atmel AVR et leur programmation avec le stk500 et j'ai trouvé que c'est relativement facile. J'aime particulièrement AVR Studio et le débogueur permet d'afficher l'état des registres.
cependant, si je devais prendre le temps d'apprendre, je préférerais apprendre quelque chose qui est présents dans l'industrie. Je pense bras, sauf si quelqu'un a une meilleure suggestion.
je serais également à la recherche de certains documents de référence, j'ai trouvé la section livres sur le site web ARM et si l'un est un livre techniquement mieux que l'autre je apprécierais un heads up.
la dernière chose que je cherche est une carte de prototypage/programmation comme le STK500 qui a quelques boutons et ainsi de suite.
Merci =]
21 réponses
"programmation intégrée" est un terme très large. AVR est plutôt bien dans cette catégorie, mais c'est un pas en dessous du bras, en ce sens qu'il est à la fois plus simple à utiliser et moins puissant.
si vous voulez juste jouer avec ARM, achetez une Nintendo DS ou une avance Gameboy. Ceux-ci sont très bon marché par rapport au matériel à l'intérieur (merveilles de production de masse), et ils ont tous les deux libre développement chaînes d'outils basé hors de gcc qui peut compiler pour eux.
si vous voulez jouer avec Linux intégré, BeagleBoard est à la recherche d'être une bonne option, seulement $150 et il a une tonne de fonctionnalités.
personnellement, je pense QU'AVR est le meilleur pour les petites plateformes 8 bits, et ARM est le meilleur pour les plus grandes, plus puissantes plateformes basées sur 32 bits. Comme beaucoup de fans D'AVR, je n'aime pas les photos. Ça semble juste pire dans presque tous les sens. Aussi éviter tout ce qui vous oblige à écrire n'importe quel type de BASE.
si vous voulez juste jouer avec, je suggérerais la plate-forme Arduino ( http://www.arduino.cc ). Il est basé sur L'ATmega168 ou L'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 embarquée depuis maintenant 9 ans et j'ai de l'expérience sur TI MSP430, Atmel AVR (quelques saveurs) et je vais bientôt utiliser un bras.
ma suggestion est de ramasser quelque chose qui a quelques fonctionnalités supplémentaires dans le processeur comme contrôleur ethernet et peut contrôleur, même obtenir deux ou trois si vous le pouvez. Les périphériques embarqués sont agréables à travailler, mais une fois qu'ils peuvent parler à d'autres dispositifs similaires via CAN ou obtenir sur un réseau, ils peuvent devenir beaucoup plus amusant de jouer avec.
ARM a le jeu d'instruction le plus beau des plates-formes encastrées largement utilisées, vous laissant libre de ramasser les principes généraux de l'écriture de logiciel pour les plates-formes encastrées sans s'enliser dans des détails bizarres comme des registres non-orthogonaux ou des slots de retard de branche. Il y a beaucoup d'émulateurs - BRAS, les pas gratuit, est cycle précis; et une grande variété de programmable ARM matériel est bon marché et facile à trouver.
ADI Blackfin est une autre option car il s'agit d'une architecture assez simple à programmer, mais peut également faire quelques trucs assez riche DSP si vous choisissez de suivre cette voie. Il est bon que le langage de l'assemblée soit également sain.
le Blackfin STAMP les planches sont un moyen peu coûteux (~$100 la dernière fois que j'ai coché), et ils soutiennent les outils GCC libres et uClinux.
peu importe l'architecture que vous choisissez je recommande certainement d'abord le téléchargement de la chaîne d'outils\SDK et de regarder à travers les exemples de projets et de tutoriels - généralement avoir un peu d'un jeu sur. Il est souvent possible de se familiariser avec l'architecture grâce à la simulation sans même toucher au matériel.
le TI MSP430 est une excellente plateforme pour apprendre à programmer des microcontrôleurs. TI a une variété de free Tools et certains cheap evaluation boards (à partir de $20). En plus, c'est un microcontrôleur moderne de faible puissance.
un bon choix serait PIC18 par micropuce
-
il a tout à fait beaucoup de matériel, de documentation, de tutoriels et de projets sur l'internet
-
Gratuit IDE et le compilateur.
-
vous pouvez tirer votre propre flash écrivain en quelques minutes. (Bien que pour un débogueur de travailler vous aurez besoin de travailler plus dur)
-
si vous êtes un l'étudiant (ou a une adresse email d'étudiant) Microchip vous enverra des chips d'échantillon gratuit. Donc, fondamentalement, vous pouvez avoir un environnement de travail complet pour presque rien.
-
les PICs sont très répandus dans l'industrie. Spécifiquement comme contrôleurs pour les robots pour une raison quelconque, bien qu'ils puissent faire tellement plus.
Arduino semble être la plate-forme de choix ces jours-ci pour les débutants bien qu'il ya beaucoup d'autres. J'aime le Olimex conseils personnellement, mais ils ne sont pas vraiment pour les débutants.
Microchip l 'pic gamme de CPU sont également excellents pour les débutants, surtout si vous voulez programmer en assembleur.
BTW, assembleur N'est pas utilisé autant qu'il l'habitude. Général règle avec intégré est si vous avez 4k de mémoire ou plus, utilisez C. Vous obtenez la portabilité et vous pouvez développer le 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 habituellement quelle puce intégrée utiliser pour les périphériques disponibles. Si vous voulez un port USB, trouver un avec USB intégré, si vous voulez analogique-numérique, en trouver un avec un ADC etc. Si vous avez une application simple, utilisez un 8-bit, mais si vous avez besoin de nombre sérieux croquant, passez de 32 bits.
j'aimerais vous suggérer le beagleboard de TI. Il y a un Omap3 dessus. C'est un processeur Cortex-A8 ARM11, un C64x+ DSP et un accélérateur vidéo.
le Conseil n'a pas besoin d'un appareil 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 $et la collectivité est très active.
www.beagleboard.org
votre question sorte de a été répondu dans cette question .
pour ajouter à cela, l'industrie des processeurs embarqués est très segmentée, il n'a pas de joueur majeur comme Intel/x86 est pour l'industrie des processeurs" de bureau". Le processeur ARM a une grande part, tout comme les MIPS, je crois, et il y a beaucoup de microcontrôleurs plus petits et plus spécifiques comme les puces disponibles (comme le MSP430 etc de TI).
comme pour documentation, je fais du développement intégré pour un travail de jour, et la documentation à laquelle nous avons accès (en tant que développeurs de logiciels) est plutôt clairsemée. Votre meilleur pari est d'utiliser la documentation disponible sur les fabricants de processeurs site.
jetez un oeil à traitement et les Arduino associés et les cartes de câblage.
si vous voulez simplement vous amuser, essayez la puce à hélice Parallax. La plateforme de jeu D'HYDRA ressemble à une explosion. Il y a un compilateur à 100 $C pour ça maintenant.
j'ai commencé sur les timbres de base, suis monté à travers les puces SX et les PICs dans 8051s, puis 68332s, Divers Dsp, FPGA soft processeurs, etc.
8051s sont plus utiles dans le monde réel... les choses ne vont pas disparaître. Il y a des tonnes de produits dérivés et des trucs dingues pour eux. (Juste rester à l'écart de la DS80C400) l'industrie de l'énergie en est absolument pleine.
commence par quelque chose de petit. Si vous avez RAM externe et beaucoup de registres... Quelle est la différence entre ça et un SBC?
il y a plusieurs lunes, j'ai travaillé avec des 8-bitteurs comme 68HC05 et Z80, plus tard AVR et MSP430 (16-bit). Toutefois, la plupart des projets récents ont été réalisés dans le cadre du programme ARM7. Plusieurs fabricants offrent des contrôleurs de bras, dans toutes les couleurs et tailles (Eh bien, pas vraiment couleur).
ARM (7) remplace l'architecture 8-bit: elle est plus performante (RISC 32-bit à des cycles d'instruction plus rapides que la plupart des 8-bitteurs), a plus de mémoire et est disponible avec plusieurs configurations IO. J'ai travaillé avec NXP LPC2000 contrôleurs, qui sont également peu coûteux (<1 USD pour un 32-bitter!).
si vous êtes en Europe http://www.olimex.com/dev/index.html a quelques bons conseils de développement à faible coût. Oeuvres dans le reste du monde :-)
pour un projet amusant à tester, jeter un oeil à xgamestation
mais pour une plus utilisé la programmation de solution d'une puce, voir PIC
pour mon cours D'Architecture informatique, j'ai dû travailler à la fois avec un PIC et un AVR; à mon avis, Le PIC était plus facile à utiliser, mais c'est peut-être parce que c'est ce avec quoi nous avons le plus travaillé et auquel nous avons eu le plus de temps pour nous habituer. Nous avons utilisé L'AVR peut-être seulement quelques fois donc je ne pouvais pas y arriver parfaitement mais il n'y avait rien de trop compliqué, ou du moins pas plus frustrant que l'autre.
je pense que vous pouvez aussi commander un microprocesseur des échantillons du site Web de Microchip pour que vous puissiez aussi commencer avec ça?
pour apprendre, vous ne pouvez pas passer L'AVR. Les puces sont bon marché et ils fonctionnent avec zéro composants externes - ils fournissent également assez de courant pour conduire une LED directement à partir du port.
vous pouvez commencer avec un programmeur bon marché comme lady-ada USBTinyISP (USD$22 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 obtenir un petit projet de travail en un rien de temps.
Oui les RVA ont des limites - mais développer des logiciels pour les microcontrôleurs, c'est surtout 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 stack, de RAM ou de ROM lorsque vous faites des projets de hobbist pour des plates-formes de bras puissantes.
cela dit, ARM est aussi une grande plate-forme qui est largement utilisé dans l'industrie, cependant, pour l'apprentissage je recommande fortement AVRs.
je suggère la série PIC18F de Microchip. Je viens de commencer à développer pour eux avec L'émulateur en circuit RealICE, mais le pickit2 est un bon débogueur pour le prix. Vous pouvez dire cela pour les AVR aussi, mais il y a un grand nombre de Suiveurs pour l'appareil partout sur le web. J'ai été en mesure d'avoir un - buggy, mais fonctionnel - intégré périphérique USB en cours d'exécution en quelques jours en raison de tous les bavardages liés PIC.
la seule chose que je n'aime pas sur les photos est que beaucoup de l'échantillon de code est très entrelacé dans les planches de démonstration. Cela peut rendre difficile de déchirer les sections dont vous avez besoin et encore avoir une application qui va construire et exécuter pour votre application.
Texas Instruments a publié un kit de développement très intéressant à un prix très bas: le eZ430-Chronos outil de développement 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 y a aussi un wiki contenant beaucoup d'informations.
j'ai déjà a créé une proposition de stackexchange pour le kit eZ430-Chronos.
vous devriez essayer et apprendre des kits de developpers fournis par Embedded Artists . Une fois que vous avez reçu le kit, vérifiez leurs vidéos d'instruction et les vidéos fournies par NXP, qui ne sont pas aussi détaillées qu'elles pourraient l'être, mais elles couvrent beaucoup de choses. Les problèmes avec le bras d'apprentissage comme première architecture et essayer de faire quelque chose de pratique sont:
- Vous avez besoin d'acheter dev. kit.
- Vous avez besoin d'un bon livre pour apprendre L'assemblage de bras, parce que tôt ou tard, vous tomberez sur le code de démarrage de bras, qui est tout à fait une affaire pour un débutant. Le livre que j'ai mentionné allso couvre une partie de la programmation de C.
- Combine le livre mentionné ci-dessus avec un guide d'utilisation pour votre processeur spécialisé comme celui-ci . Assurez-vous d'obtenir ce que l'étude de ce en combinaison avec ci-dessus livre est la seule façon d'apprendre votre bras proc. dans le détail.
- si vous voulez pour faire un transfert de L'assemblage de bras à la programmation C , vous aurez besoin de lire ce Livre , qui couvre un processeur de bras différent, mais est plus facile pour débutant C. L'inconvénient est que cela n'explique aucun assemblage de bras, mais c'est pourquoi vous avez besoin du premier livre.
il n'y a pas de solution facile.
mikroElektronika a beau bras planches et C, Pascal et de base compilateurs qui pourrait répondre à vos demandes.