Question

J'ai l'expérience à faire bureau et programmation web depuis quelques années. Je voudrais passer à faire un peu de programmation du système d'intégration. Après avoir demandé la question initiale , je me demande qui IDE matériel / logiciel dois-je commencer à ...

Ou ... n'a pas d'importance?

Quelle plate-forme de développement est le plus facile à apprendre et programme (prendre en considération de la facilité d'utilisation IDE)?

Lequel est le plus facile à déboguer si quelque chose ne va pas?

Mon but est d'en apprendre davantage sur Est-il préférable d'apprendre celui que je vais utiliser plus tard, ou le concept de haut niveau devrait porter sur la plupart des micro-contrôleurs?

Merci!

Mise à jour: comment est ce kit de dev pour commencer? Commentaire? suggestion?

Était-ce utile?

La solution

Personnellement, je vous recommande un ARM Cortex-M3 basé microcontrôleur. Plus puissance les noyaux ARM sont extrêmement populaires, et ces versions de faible puissance pourrait très bien décoller dans un espace qui est encore parsemée de noyaux de propriété 8/16 bits. Voici un article récent sur le sujet: L'ARM Cortex-M3 et la convergence du marché MCU .

Le Arduino est très populaire pour les amateurs. Atmel bibliothèque périphérique de est assez commun pour tous les types de processeurs. Ainsi, il lisse une transition plus tard d'un AVR à un ARM .

Je ne parle pas d'affirmer que l'ARM est préférable à un régulateur ou tout autre noyau. Le choix d'un microcontrôleur pour un produit commercial se résume généralement à des périphériques et des prix, suivi par des outils de base de code existant et de développement. Par ailleurs, les microcontrôleurs sont en général beaucoup plus simple qu'un PC de bureau. Ainsi, il est vraiment pas difficile de se déplacer sous forme un à l'autre après que vous obtenez le coup de lui.

Aussi, regardez dans FreeRTOS si vous êtes intéressé par le système d'exploitation en temps réel (RTOS) développement. Il est open source et contient une belle promenade à travers de ce qu'est un RTOS et comment ils ont mis en œuvre un. En fait, leur de plain-pied par exemple cible même un AVR.


Outils de développement pour les systèmes embarqués peuvent être très coûteux. Cependant, il y a souvent des alternatives open source pour les noyaux plus ouverts comme ARM et AVR. Par exemple, voir le WinARM et WinAVR projets de.

Les chaînes d'outils sont fondés sur GCC et sont donc également disponibles (et plus facile à utiliser à mon humble avis) sur les plates-formes non-Windows. Si vous êtes familier avec l'utilisation du CCG, alors vous savez qu'il ya une abondance de « IDE » en fonction de votre goût EMACS et vi (mon préféré) Eclipse .

Les offres commerciales peuvent vous faire économiser beaucoup de maux de tête obtenir la configuration. Cependant, le choix d'un dépendra beaucoup de votre matériel cible et le budget. En outre, un certain soutien matériel débogage USB directe tandis que d'autres peuvent nécessiter un href="http://en.wikipedia.org/wiki/Joint_Test_Action_Group" cher adaptateur de JTAG.


Autres liens:


Cortex-M3 à faible coût: Boards


Nouveau Arduino pour utiliser un ARM Cortex-M3 au lieu d'un microcontrôleur AVR.

Autres conseils

Étant donné que vous avez déjà une expérience de la programmation, vous voudrez peut-être envisager d'obtenir un Arduino et effaçant le firmware de faire vos propres trucs avec AVR Studio + WinAVR. L'Arduino vous donne un bon point de départ pour comprendre le côté électronique de celui-ci. En prenant le bootloader Arduino vous donnera un meilleur accès aux entrailles de l'Atmel.

Pour atteindre les objectifs que vous êtes exposant, je recommande également d'explorer plus en profondeur les ordinateurs de bureau grâce à la programmation x86. Vous pouvez créer un noyau de système d'exploitation x86, par exemple.

ARM est le plus largement utilisé l'architecture intégrée et couvre une vaste gamme de dispositifs de fournisseurs multiples et une large gamme de coûts. Cela dit, il existe des différences significatives entre ARM7, 9, 11, et les appareils Cortex - en particulier Cortex. Toutefois, si entrer dans les systèmes embarqués est professionnellement votre objectif, l'expérience ARM vous sera bien utile.

8 architectures de bits sont plus faciles à utiliser en général, mais souvent très limité à la fois des vitesses capacité de mémoire et de base. De plus, parce qu'ils sont simples à utiliser, les compétences 8 bits sont relativement faciles à acquérir, il est donc une compétence moins attrayant pour un employeur potentiel, car il est facile à remplir en interne ou avec le personnel moins expérimenté (et donc moins cher).

Toutefois, si cela est un passe-temps plutôt que d'une carrière, le faible coût des pièces, des conseils et des outils, et la facilité d'utilisation peut rendre 8 bits attrayant. Je suggère AVR simplement parce qu'il est pris en charge par le libre toolchain de avr-gcc. Quelque 8 cibles de bits sont pris en charge par CCSD, un autre compilateur open source C. Je crois Zilog faire leur compilateur Z8 disponible gratuitement, mais vous devrez peut-être payer pour le matériel de débogage (bien que ce soit relativement peu coûteux). De nombreux fournisseurs d'outils commerciaux offrent des versions limitées taille-code de leurs outils pour l'évaluation et l'utilisation non commerciale, mais méfiez-vous la plupart des débogueurs nécessitent du matériel spécialisé qui peut être coûteux, bien que dans certains cas, vous pouvez construire vous-même si vous avez seulement besoin des fonctionnalités de base et faibles vitesses.

Quoi que vous fassiez, il faut jeter un oeil à www.embedded.com . Si vous choisissez ARM, je l'ai utilisé avec succès WinARM des projets commerciaux, bien qu'il ne soit pas intégré pour-confort! Une bonne liste des ressources ARM est disponible . Pour AVR vérifier certainement www.avrfreaks.net

Je ne recommande pièces Microchip PIC (au moins les bas de gamme) pour le coût des projets hautement sensibles où le mélange périphérique est un bon ajustement à la demande; pas pour l'apprentissage des systèmes embarqués. PIC est plus d'une image de marque d'une architecture, les différentes gammes PIC12, 16, 18, 24 et PIC32 sont très différents les uns des autres, l'apprentissage ainsi de suite on ne vous résiste pas nécessairement à la bonne place pour utiliser un autre - souvent vous avez besoin même pour acheter de nouveaux outils! Cela dit, le dsPIC qui est basé sur l'architecture PIC24 peut être un bon choix si vous voulez obtenir une certaine expérience de DSP simple en même temps.

Dans tous les cas vérifier la disponibilité du compilateur (surtout si le soutien de C est une exigence) et le coût et les exigences matérielles du débogueur, car, souvent, ceux-ci seront les parties les plus chères de votre kit de dev, les conseils et les pièces sont souvent les moins partie coûteuse.

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

Il y a aussi un wiki contenant beaucoup et beaucoup d'informations .

Je l'ai déjà a créé une proposition de la StackExchange eZ430-Kit Chronos.

Quoi que vous fassiez, assurez-vous que vous obtenez un bon environnement de développement. Je ne suis pas fan des outils de développement de Microchip même si j'aime leurs micro-contrôleurs (je suis brûlé trop de fois par MPLAB + ICD, trop de problèmes et le dysfonctionnement). 2800 série DSPs de TI sont assez bons et ont un environnement de développement C ++ basé sur Eclipse que vous pouvez obtenir en pour 28335 ) - le lien de communication débogueur est vraiment solide; l'IDE est bon, même si je ne l'occasion crasher.

Quelque part il y a des circuits intégrés et des conseils qui sont mieux; Je ne suis pas familier avec le paysage du microcontrôleur intégré, mais je n'ai pas beaucoup de patience pour pauvres IDEs avec une autre chaîne d'outils logiciels que je dois comprendre comment se déplacer tous les bugs.

Certains recommandent l'ARM. Je le recommande, non pas comme une première plate-forme pour apprendre, mais comme une deuxième plate-forme. ARM est un peu complexe comme plate-forme pour apprendre les détails de bas niveau de embarqués, parce que son code de démarrage et les exigences sont plus compliquées initialisations que beaucoup d'autres micro-ordinateurs. Mais ARM est un acteur important dans le marché de l'embarqué, si bien la peine d'apprendre. Donc, je le recommande comme une deuxième plate-forme pour apprendre.

Le Atmel AVR serait bon pour l'apprentissage de nombreux éléments essentiels intégrés, pour 3 raisons principales:

  1. L'architecture est raisonnable avant droit
  2. Bon disponibles, avec des tutoriels
  3. forum Fan avec beaucoup de ressources

Autres kits de développement pourraient également être bon comme MSP430 -Bien ils ne peuvent pas avoir un tel forum de fan. L'utilisation d'un kit de développement est une bonne façon d'aller, car ils sont orientés vers l'obtention rapidement vers le haut et courir avec le micro, et favoriser un apprentissage efficace. Ils sont susceptibles d'avoir tutoriels rapidement orienté vers la mise en route .

Eh bien, je suppose que les kits de développement et leurs tutoriels sont susceptibles de passer sous silence des choses telles que le code bootloader et le démarrage, en faveur de l'obtention de votre code pour faire clignoter la LED le plus tôt possible. Mais cela pourrait être une bonne façon de commencer, et vous pouvez explorer la chaîne des événements de « mise sous tension » à « l'exécution de code » à votre rythme.

Je ne suis pas fan des PICs, au moins les PIC16s, en raison de leur architecture . Il est pas très C-friendly. Et les banques de mémoire sont douloureuses.

Ce genre est une question difficile à répondre que votre réponse idéale dépend beaucoup de ce qu'il est votre intérêt dans l'apprentissage.

Si votre objectif est juste de plonger un peu plus profondément dans le fonctionnement interne des systèmes informatiques je dirais presque vous recommande de renoncer à l'itinéraire intégré et prenez un livre sur l'écriture d'un module du noyau Linux. Ecrire quelque chose de simple qui lit un capteur de température hors du SMBus ou quelque chose comme ça.

Si vous cherchez à obtenir dans le développement d'applications embarquées de haut niveau (téléphones, etc.), téléchargez le SDK Android, vous pouvez coder en Java sous Eclipse et a même un émulateur agréable.

Si vous cherchez à entrer dans l'espace microcontrôleur « réel » et vraiment prendre un coup d'œil à la programmation du système est faible niveau, je vous recommande de commencer sur une architecture très simple, comme un AVR ou PIC, quelque chose sans MMU.

Plonger dans le moyen terme, par exemple un ARM avec MMU et une sorte de système d'exploitation que ce soit Linux ou est autrement va être un peu un choc sans arrière-plan est à la fois la programmation système et le matériel interfaçage je pense que la transition être très difficile si vous prévoyez de faire beaucoup d'autres que d'écrire des applications très simples, en comptant appuie sur un bouton ou similaire.

Il importe, vous devez acquérir progressivement l'expérience en commençant par des systèmes plus simples. Notez que, par simple je ne veux pas dire moins puissant, je veux dire la facilité d'utilisation, la facilité d'installation etc. Dans cette veine, je recommande ce qui suit (je aucun intérêt à un quelconque des produits, je les trouvé le meilleur):

J'ai commencé à utiliser un de ces (carte développeur MBED). Les grands points de vente pour moi étaient que je pouvais coder en C ou C ++, connexion directe vis USB et un environnement de développement en ligne lisse (aucune installation d'outils locaux nécessaires à tous!).

http://mbed.org/

Cinq minutes afer boîte d'ouverture que j'avais un programme de Blinky exemple (le « bonjour monde » du monde emedded) exécutant ce qui suit:

#include "mbed.h"

DigitalOut myled(LED1);

int main()
{
    while(1)
    {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

Voilà! est au-dessus du programme complet!

Il est basé sur ARM Cortex M3, rapide et beaucoup de mémoire pour les projets embarqués (100MHz, 256k et 32k flash ram). Les outils de développement en ligne ont une très bonne bibliothèque et beaucoup d'exemples et il y a un forum très actif. Beaucoup d'aide sur la connexion de périphériques à MBED etc

Même si j'ai beaucoup d'expérience avec les systèmes embarqués (ARM 7/9, Renases M8 / 16/32, ColdFire, Zilog, PIC etc) ce que je trouve encore un système rafraîchissant facile à se familiariser avec tout en ayant une capacité sérieuse .

Après avoir d'abord jouer avec elle sur une planche à pain de base, j'ai acheté une carte de base de ces gars-là: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207 . Cela a un tas de périphériques d'E / S (y compris un OLED miniture et un accéléromètre 3 axes). De même site j'ai aussi acheté une des cartes de traitement de LCPExpresso qui est pas cher, moins de puissance / mémoire que le MBED mais parfait pour les petits travaux (marteaux toujours la merde hors des processeurs PIC / ATMEGA). La plaque de base prend en charge le LCPExpresso et le MBED. L'achat de la carte processeur LCPExpress aussi m'a-moi un débogueur JTAG attaché et un hors-ligne dev envoronment (le kit à base de dev GCC / Eclipse Code Red). Cela est beaucoup plus complexe que l'environnement dev MBED en ligne, mais est une progression logique après que vous avez gagné expeience avec le MBED.

En ce qui concerne mon noite de point d'origine que le contrôleur de MBED est beaucoup plus capable que le contrôleur LPCExpresso mais il est beaucoup plus simple à utiliser et à apprendre avec.

J'utilise puces électroniques PIC, son que j'ai commencé, je me suis surtout d'aller là-dessus en raison des 123 projets de microcontrôleur pour le livre de génie du mal. Je pris une classe Microprocesseurs à l'école pour mon diplôme et appris un peu plus sur les interruptions et le calendrier et les choses, cela a contribué à une tonne avec mes micro-contrôleurs. Je suppose que certains des autres programmeurs, etc peut être mieux / plus facile, mais pour 36 $ pour la PicKit1, je suis trop pas cher pour aller acheter un autre ... et franchement sans les utiliser, je ne sais pas si elles sont plus faciles / mieux , j'aime le mien et je le recommande toutes les chances que je reçois, et il m'a fallu toujours regarder vraiment en fait à elle, mais j'ai pu programmer une autre puce hors bord avec ICSP enfin. Je ne sais pas ce que les autres programmeurs le font, mais pour moi qui est la plus belle chose 5 interface filaire et vous êtes programmé. Ne peut pas battre ce avec un bâton ...

Je ne l'ai utilisé un.

Freescale est une puce très bien. Je l'ai utilisé des puces HC-chose depuis des années pour les petits projets. La seule réserve est que je ne toucherais pas CodeWarrier embarqué avec une perche de 10 pieds. Vous pouvez trouver des petits compilateurs libres C et assembleurs (je ne me rappelle pas le nom du dernier je) qui font le travail très bien. CodeWarrior était grande et confuse et peu importe combien je savais sur l'architecture de la puce et la programmation C semblait toujours faire que les choses plus difficiles. Si vous avez utilisé Codewarrior sur le Mac de retour dans les vieux jours et que CW est assez propre, eh bien, ce n'est pas du tout comme ça. CW intégré regarde vaguement similaires, mais fonctionne très différemment, et pas très bien.

Un compilateur de ligne de commande est généralement fin . Les professionnels qui peuvent débourser les grands mâles obtiennent des environnements de développement coûteux, et je suis sûr qu'ils font les choses mieux, mais sans cela, il est encore beaucoup mieux que d'écrire du code assembleur pour un PC de bureau en 1990, et en quelque sorte nous avons réussi à le faire très bien . : -)

Non, il n'a pas d'importance si vous voulez apprendre comment programmer un appareil embarqué. Mais vous devez connaître le débit de l'endroit où commencer et où aller. Parce que il y a beaucoup de micro-contrôleurs là-bas et vous ne savez pas lequel choisir. Il vaudrait donc mieux avoir une feuille de route avant de commencer.

À mon avis, vous devriez commencer par - Tout conseil AVR (atmega 328P- conseils ou arduino conseils AVR) alors vous devriez aller à ARM micro-contrôleur - d'abord faire ARM CORTEX TDMI puis le cortex M3 ARM board.Thus cela vous donnera une vue d'ensemble, après quoi vous pouvez choisir un conseil selon le type de projet que vous travaillez et quels sont vos besoins.

En savoir plus sur embarqué ON- doafco.com

Vous pouvez considérer a RoBoard . Maintenant, ce conseil peut pas être ce que vous recherchez en termes d'un microcontrôleur, mais il a l'avantage de pouvoir exécuter Windows ou DOS et donc vous peut utiliser les outils de développement Microsoft .NET ou même C / C ++ pour bricoler avec des choses comme servos ou des capteurs ou même, ce que le diable, construire un robot! Il est en fait un peu amusant.

Il y a aussi Axon II , qui a le processeur ATmega640.

De toute façon, les deux conseils devraient vous aider à atteindre votre objectif.

Désolé pour la robotique se concentrer, juste quelque chose que je suis intéressé et pensé qu'il peut vous aider aussi.

J'utilise PICs, mais considérerais Arduino si je choisis aujourd'hui. Mais à partir de vos objectifs:

  • comment les ports IO travail
  • les limites / exigences mémoire
  • routines de service d'interruption

Je me demande si vous meilleur pari est juste pour pirater dans le noyau Linux?

BBC Micro Bit

https://en.wikipedia.org/wiki/Micro_Bit

Cette petite planche pas cher (~ 20 livres) a été mis en cage par ARM Holdings comme un dispositif pédagogique, et les unités 1M ont été distribués gratuitement aux étudiants du Royaume-Uni.

Il contient un processeur ARM Cortex-M0, le noyau ARM le plus petit de tous.

Je le recommande comme une première carte micro-contrôleur en raison de sa grande disponibilité, à faible coût, la simplicité et le fait qu'il vous présente l'architecture ARM, qui a beaucoup plus cartes avancées sont également disponibles pour des applications plus graves.

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