En ce qui concerne le msp430, c'est une bonne architecture, de très bons outils là-bas mspgcc et mspgcc4 et llvm d'ailleurs. binutils sans patcher. Vous pouvez obtenir une rampe de lancement pour moins de 5 $ à ce prix, achetez-en quelques-uns (vous finirez par briquer quelque chose ou le court-circuiter et le faire fondre, en avoir un de rechange, en particulier à ce prix) ...
Téléchargez les outils, ils sont tous gratuits, écrivez quelques lignes de code, apprenez comment le lier, voyez la taille du binaire, obtenez une idée de l'intégration, des lignes de code à la taille de la rom, etc.
Comment les pros le font-ils? Presque toutes les façons que vous pouvez imaginer:
Pour certaines entreprises, le mandat vient d'en haut et il n'y a rien d'autre à faire que d'arrêter. Et vous ne saurez peut-être jamais pourquoi cette plate-forme a été choisie.
Parfois, l'entrepreneur / client préféré dicte la plate-forme, parfois vous pouvez éduquer / négocier, parfois non.
Certaines personnes ont juste un favori, la peur de l'inconnu, peu importe. Même raison pour laquelle certains achètent une seule marque de voiture, parce que mon père l'a fait et son père avant cela, et cela pourrait être la raison entière.
Certaines personnes se concentrent sur les outils. Ici encore, vous avez des gens fidèles à la marque, se limitant à leur société de compilation préférée et à toutes les cibles qu'ils prennent en charge, ou à l'outil open source préféré et à ce que cela prend en charge. Système d'exploitation intégré préféré et limite aux cibles prises en charge.
Dans certains cas, il s'agit d'outils, mais d'une manière différente, au fil du temps, vous avez peut-être investi beaucoup d'argent dans des contrats de support annuels avec un fournisseur (disons arm ou xilinx ou motorola par exemple) et il se peut que vous ayez aimé leur support et ne veux pas changer ou le diable que vous connaissez est meilleur que le diable que vous ne faites pas. Ou cela pourrait être dû au fait que les 5 autres projets actifs de l'entreprise utilisent cette chose et que nous avons déjà un contrat de support et continuerons à payer pour cette année après année, vous devez choisir l'une de ces solutions de fournisseurs.
Parfois, il s'agit de sauver les millipennies. Cette pièce est 1,5% moins chère que cette pièce, faites-la fonctionner avec cette pièce, ne vous souciez pas du NRE, pensez aux économies de fabrication en volume.
Parfois, il s'agit de négatifs. Un fournisseur peut avoir vissé votre entreprise d'une manière ou d'une autre. Le non-respect de la fourniture de pièces annoncée entraînant des retards ou l'annulation de vos produits. Les arnaques aux appâts et aux commutateurs (les frais de 50 000 $ pour le logiciel n'incluaient pas les frais de 1 200 $ pour le dongle requis pour déverrouiller la licence, c'est un élément de coût supplémentaire. Oh et c'était par utilisateur pour la licence flottante). Une fois que vous avez signé le NDA pour voir le manuel de référence du programmeur ou le guide de conception de référence, vous découvrez à quel point leur ingénierie est affreuse et vous pouvez choisir de mettre tous leurs produits sur liste noire à vie. Histoire passée avec un support technique horrible. Un certain nombre de raisons peuvent vous empêcher d'autoriser leurs vendeurs à la porte d'entrée ou vous empêcher de consulter à nouveau leur site Web.
Parfois, cela a à voir avec les performances, les interfaces, etc. Par exemple, vous avez une interface filaire et nécessite un pull up, la marque de microcontrôleur XYZ pour 3 $ par pièce a un ensemble de broches d'E / S qui peuvent être utilisées sans aucun autre matériel externe requis, la marque ABC a une pièce de 3 $ qui nécessitera un transistor et une résistance externes pour le faire fonctionner au minimum. Votre exemple du msp430, disons qu'il s'agit de consommation d'énergie, la partie A peut ne nécessiter que l'utilisateur d'utiliser une pile AAA et fonctionner pendant des mois, la partie B peut avoir besoin de deux piles AAA et fonctionner pendant des semaines.
Le cas le plus rare est de faire l'ingénierie, de sonder tous les fournisseurs, de faire les calculs de consommation d'énergie, le prix par unité de calcul de votre produit, la taille d'une rom dont nous avons besoin et la fréquence à laquelle la puce doit fonctionner, logique de colle, et ainsi de suite. Habituellement, quelqu'un (patron / client / ingénieur principal) prend ses années d'expérience et tire de la hanche (souvent en utilisant un ou plusieurs des éléments ci-dessus) pour choisir le chemin (souvent un bon chemin pour économiser des tonnes de temps en calendrier et en dollars) et le l'ingénierie est effectuée une fois pour affiner la plate-forme choisie.
Ma recommandation personnelle est d'être flexible. La plupart des marques / familles de microcontrôleurs, sous une forme ou une mode, peuvent être stockées sur une carte d'évaluation pour moins de 50 $. Sparkfun, olimex ou directement auprès du vendeur (ti pour msp430 ou stellaris, etc.). Essayez un ou plusieurs de chacun, ayez une idée de ce qui est en commun et de ce qui est différent, des outils, des chargeurs, de la difficulté à débrider, etc. Vous obtenez au moins deux choses à partir de cela, l'une est que lorsque vous êtes forcé de descendre un chemin d'en haut ou de client, vous pouvez commencer à fonctionner, deuxièmement, lorsque c'est à votre tour de choisir la plate-forme, vous êtes mieux informé de ce qui est et n'est pas là-bas et pouvez choisir la bonne plate-forme (mot chargé) en fonction du problème à résoudre. être résolu.
Même si vous ne pouvez pas ou ne pouvez pas dépenser ce genre d'argent pour le matériel, la plupart ont des outils que vous pouvez télécharger (gratuitement), dans des cas comme les micropuces, vous pouvez maintenant obtenir le compilateur C (auparavant Hi-tech) mais devez vous abonner (renoncer à votre adresse e-mail). gcc l'aime ou le déteste, il sera dans votre futur, de bureau ou intégré, mettez la main à la pâte et apprenez à l'utiliser comme compilateur croisé. Essayez aussi llvm, il sera là pendant un certain temps et donnera à gcc une sérieuse concurrence. Quoi qu'il en soit, écrivez ou trouvez des émulateurs, mame en a plusieurs, gdb en a, etc. et exécutez les programmes sur les deux avant de passer au matériel uniquement). J'ai concocté un émulateur msp430 mais j'ai un peu calé là-dessus. L'ensemble d'instructions est si petit que la majeure partie du travail est une soirée ou peut-être un projet du samedi. Il en va de même pour le PIC, un long après-midi et vous avez un simulateur de jeu d'instructions avec lequel vous pouvez pratiquer l'embarqué. Si rien d'autre, vous pouvez simplement écrire les programmes compiler et lier pour avoir une idée de la façon de le faire et de la taille des programmes, comment régler les programmes pour produire du code plus serré, etc.
En ce qui concerne C vs assembleur, certains jeux d'instructions sont compatibles C et d'autres non. Certains compilateurs sont de taille moyenne et certains sont vraiment mauvais et seuls quelques-uns sont vraiment bons (et coûtent généralement quelques milliers de dollars une fois ou par an à utiliser). Comme pour les performances n'importe où si vous voulez vraiment les pousser, un mélange de langage de haut niveau (disons simplement C) et d'assembleur peut être nécessaire. Donc, la compétence n'écrit pas l'application entière dans l'assembleur, la compétence consiste à déterminer le code qui vous empêche de respecter le calendrier / les performances, puis à savoir comment résoudre ce problème via C, les options du compilateur, le choix du bon compilateur ou l'écriture de l'assembleur.
Je vous recommande de connaître l'assembleur pour toutes les plates-formes que vous choisissez d'utiliser, si rien d'autre n'est lisible, comme avec l'embarqué, je vous recommande de le démonter souvent (tout en déterminant où se trouvent vos problèmes de performances). De nombreuses plates-formes, un assembleur est requis ou souhaité pour le code de démarrage de toute façon.
Si vous souhaitez économiser 10 à 20% sur le prix unitaire et que vous souhaitez acheter le microcontrôleur ou l'oscillateur moins cher / plus lent, ou la partie flash de 32 Ko au lieu de la partie flash de 64 Ko et peut couvrir les coûts de développement avec le volume des ventes, et peut-être une longue liste d'autres choses que vous pouvez très bien choisir d'écrire le tout en assembleur, rapide, à faible puissance, à faible coût, des clients satisfaits.
Selon votre expérience jusqu'à présent, vous ne devriez peut-être pas vous soucier d'écrire dans tous les assembleurs et peut-être des aspects de l'électrotechnique intégrés aux microcontrôleurs, de lire les schémas, de savoir ce que le collecteur ouvert, l'état tri, push pull, pwm, adc, dac et un longue liste d'autres termes et comment les utiliser. bit banging i2c, spi, mdio, dallas one wire, etc. Utilisation d'un oscilloscope comme débogueur logiciel. Même si les portées peuvent mettre en évidence des choses pour vous aujourd'hui (un élément de coût supplémentaire), vous devriez être en mesure de surveiller les protocoles i2c et spi et certains autres protocoles sans les points forts.
Je recommande également que pour chacune des plates-formes avec lesquelles vous jouez, sortez de quelqu'un d'autre sandbox (l'environnement Arduino ide / programmation par exemple). Écrivez le code de démarrage qui prend le processeur de réinitialisation dans votre programme principal (), faites autant que vous le pouvez pour comprendre comment charger / programmer le flash au point que cela peut impliquer d'écrire votre propre chargeur même si ceux de l'étagère sont Là. Il s'agit de l'éducation personnelle, plus vous en savez et pouvez sortir de votre poche arrière et utiliser plus vous aurez de contrôle sur votre carrière et plus de zéros à la fin du numéro sur votre chèque de paie.
Quoi que vous fassiez, n'essayez PAS d'apprendre x86 en tant que premier assembleur sur un bureau, choisissez à peu près n'importe quoi d'autre et compilez et simulez, ARM, THUMB, MSP430, PIC, AVR, même 6502, 8051. x86 est une horrible instruction ensemble et en conséquence a été transformé et façonné de tant de façons, microcodé, pas microcodé, multi-cœur, et ainsi de suite. Gardez le x86 dans des langages de haut niveau et des systèmes d'exploitation volumineux. Utilisez-le pour votre éditeur de texte et vos compilateurs et ciblez autre chose.
Désolé pour la longue réponse ... j'espère que cela a été utile.