Je vais deuxième ARM Cortex-M3 ou même ARM7 de base. Puisque vous avez mentionné I/O, je vous propose d'essayer différents fournisseurs. Certains fournisseurs vous faire faire des read-modify-écrit dans les registres de changer les valeurs de sortie, d'autres le font qu'il est plus simple sans la lecture-modification-écriture, mais cette méthode a ses inconvénients aussi bien. aller à sparkfun.com et regardez à travers les conseils de développement. Olimex (vendu par sparkfun et autres) ont une grande variété de faible coût eval conseils, parfait pour ce que vous faites.
Je préfère le jeu d'instructions de la msp430 pour l'apprentissage de l'assembleur (un assemblage est requis si vous voulez vraiment aller de l'embarqué). Arm est une seconde près de l'OMI. Vous pouvez ramasser une ez430 de ti pour comme 20 dollars, alors pour 10 $de plus, vous pouvez ramasser plus de trois msp430 conseils. Malheureusement, le RÉGULATEUR qui est probablement le plus populaire de l'architecture pour les amateurs (pic l'habitude d'être) est vraiment moche jeu d'instructions, vous kinda faut utiliser C pour l'éviter. Pourrait tout aussi bien aller avec quelque chose de propre, qui est propre à la fois dans son jeu d'instructions qui rend les compilateurs travail beaucoup plus facile faire de la C résultat plus propre code. à la fois le msp430 et le bras de la famille ont gcc solutions ainsi qu'il est facile à utiliser, créer et utiliser des llvm avec ses clang llvm (64 bits problème avec son gcc avant la fin).
Ma ligne de fond est que si vous voulez vraiment apprendre à propos de incorporés et I/O et les interruptions liées à I/O. aller à sparkfun prenez un couple de 30 $arm7s depuis le plc et le saint, et le stm32, aller chercher quelque chose à partir de stellaris, 1968 ou le 811 peut-être. Un ez430 de ti (le stellaris de la famille est maintenant une partie de la ti). Oh et à l'arrière de sparkfun et prenez une arduino mini, ou lily pad de la sous $20, mais assurez-vous d'obtenir l'usb to serial chose que les deux pouvoirs et vous donne de série/debug accès à elle. J'ai été vraiment déçu par le stm32 démo unités de st ou il était en fait un rtos vendeur. Je suis toujours très proche de ne jamais acheter de st de nouveau comme un résultat.
MODIFIER
Wow j'ai frappé quelques nerfs avec ma première réponse. Probablement frapper certains plus le modifier.
Il ya un couple de façons de le faire. L'un est le registre unique type de chose. la lecture-modification-écriture de la solution. Si vous souhaitez modifier l'un d'e/S de sortie, vous devez lire le changement de registre de la un peu qui correspond à la broche d'e/S (de sorte que vous n'avez pas modifier les autres broches d'e/S) et de l'écrire. Ce qui consomme des instructions, ce qui est mauvais pour l'embarqué, encombrants et lent esp si vous le faites dans un langage de haut niveau. Une autre solution est adaptée à peu frapper. Il y a un registre pour le réglage des broches d'e/S lorsque vous écrire pour vous mettre un 1 dans l'emplacement de la broche d'e/S ou les broches que vous souhaitez définir, puis vous écrivez, les bits que vous écrivez zéro restera inchangée. Et d'un autre registre que lorsque vous écrivez un 1, il efface le correspondant I/O pin. Ce sont grands pour bit-banging. Mais mauvaise si vous ne savez pas ce que la valeur des données est. Si vous prenez certains de données à partir d'une entrée et de passage à la broche I/O alors que vous avez à faire un si c'est un un puis écrire ici autre chose y écrire. De retour à l'encombrant et lent. Le point de ma réponse a été que les deux de ces solutions existent, certaines puces de vous donner à la fois, d'autres ont seulement l'un des deux solutions. C'est un compromis, et quelque chose vaut la visite, les vendeurs sont assez différentes, à cet égard, et d'autres. Un autre exemple de différence entre les vendeurs et les fragments sont quelques-uns offrent des fils ou des sorties et des tractions ou pas de pull-up sur les entrées, qui peuvent faire une différence si vous avez pour commencer à ajouter des pièces discrètes pour chaque broche d'e/S quand vous pourriez avoir juste choisi un autre fournisseur et sauvé tout le monde de temps et d'argent. Ce genre de chose va vous faire chômeurs rapidement.
Cortex-M3, les choix que je sais de la série STM32 de SAINT dont je (ne) acheter de sparkfun. Et le stellaris famille anciennement Luminary Micro, maintenant détenue par TI. Je voudrais éviter les 811 eval conseil d'administration, l'horloge a un certain nombre qui a été plus difficile de trouver des diviseurs pour que les autres. Aussi, j'ai enlevé mon premier, dans quelques heures, et avait à l'ordre et d'attendre pour un autre. Les autres sont moins faciles à brique. Si vous êtes prudent avec votre IO permet et les directions, et sont tout simplement désireux d'apprendre et joue de la 811 est très bien. Hmm, ai-je viens de voir que le PLC a un cortex m3 maintenant? Si non, tout le monde dans les bras d'entreprise et d'autres qui ne le sont pas vont probablement prendre le cortex-m3 pour les systèmes embarqués. Quand vous regardez tous les facteurs à partir des outils, des programmeurs disponibles, le coût unitaire, coût de développement, de performance, de puissance, etc, ces choses sont difficiles à battre.
Les inconvénients à l'utilisation de la cortex-m3 vs arm7 fonction première est que, avec l'arm7, vous pouvez apprendre les bras de l'instruction d'abord, puis passer à la manette de sous-ensemble. Avec le cortex-m3 tout ce que vous avez est le pouce et thumb2. Aussi le vecteur d'interruption table est maladroit par rapport à la normale des armes. Pas maladroit comme dans les mauvais et stupide, mais maladroit comme dans différents. Nombreux sont ceux qui considèrent le BRAS de façon que dingo, oui, compris et accepté. le cortex-m3 est plus d'une exception à la famille arm que la règle, je vous suggère d'apprentissage comme votre deuxième ou Énième BRAS n'est pas votre premier. Ici encore, toutes les bonnes choses la peine d'apprendre de vous voulez savoir sur ce marché et de l'environnement. Le str711 conseil de olimex que vous pouvez obtenir chez sparkfun est un bien pour commencer. Je pense que c'était le sam7-64 que j'ai passé plus de temps sur bien. Le Lpc sont très populaires. sparkfun a un couple avec l'9 broches port série sur les planches de sorte que vous n'avez pas à en ajouter un.
D'autres que quelques lignes à l'amorçage de la chose qui a beaucoup d'autres l'ont déjà écrit, oui c'est possible sans l'aide ou l'apprentissage de l'ASM. Je vais toucher plus de nerfs avec ces déclarations, mais incorporé moyen des ressources et rendement limité, donc beaucoup de la programmation traditionnelle, les règles de sortir par la porte, comme ne pas utiliser de valeurs globales, par exemple. Haut niveau de langages tels que le C peut devenir très douloureux esp pour les mauvais jeux d'instructions comme le PIC. Parce que vous êtes si près du métal, une quantité notable de votre code n'est pas portable à partir d'un fragment de la famille à l'autre ou même au sein de la même puce de la famille, à certains moments. Donc, à l'aide de C pour la portabilité n'est pas un argument valable. La plupart des compilateurs sont des ordures, de la gcc, par exemple, est marginale (taille unique s'adapte à tous personne, par définition, au mieux. Cela dépend de combien vous voulez contrôler et combien vous voulez être l'esclave des autres. En étant intéressé dans les systèmes embarqués pour moi, c'est que vous voulez être dans le contrôle, cela signifie que la compréhension de l'vecteur de table, de savoir quand et où et pourquoi votre compilateur est de jeter 50% ou plus de vos performances, vous auriez à faire que de contrôle à distance de durer plus longtemps avec une batterie au lieu d'exiger de trois à juste grincer juste de ne pas connaître les outils et ce qu'ils font. La grande majorité des programmeurs dans le monde d'exécuter leurs programmes à la moitié de la vitesse ou moins et double la taille. Encombrants et lent, il suffit de penser de l'électricité et de stockage de l'épargne. Normalement, vous ne voyez pas cela sur un ordinateur de bureau, mais vous aurez quand vous allez intégré. Maintenant dire que la presque totalité de mon code est en C, j'ai l'habitude de n'avoir que quelques lignes d'assembleur pour définir la pile et de l'amorçage et de quelques fonctions de ligne ici et là où le compilateur ne sera jamais en compétition ou pour couvrir les problèmes que les compilateurs ont tendance à avoir.
Je voulais un stm32, étant à l'époque le seul autre cortex-m3. Je voulais quelque chose à comparer avec les stellaris de la famille. Quand ils sont arrivés, j'ai trouvé que vous aviez à vivre dans leur bac à sable. J'ai zéro utiliser pour le rtos, je le veux supprimé et que vous voulez utiliser mon propre bootloader et le code. Au moins à l'époque c'était un élément de coût pour quelque chose que j'avais déjà payé deux fois plus que d'habitude pour les produits des concurrents. Donc ils sont dans leur boîte, de ne jamais être rouvertes ou utilisé. Finalement, pour être jeté. Oui, la moitié était le problème, je n'ai pas fait assez de recherche, j'avais supposé les planches ont été comme les autres normal eval conseils, c'était un premier temps de gravure pour moi. Brûlez-moi une fois, honte sur vous brûlez-moi deux fois, honte sur moi. Et c'était le rtos vendeur de ne pas ST qui était le véritable coupable. Donc, une fois que le olimex stm32 conseil d'administration a été disponible à partir de sparkfun j'en ai acheté un.
L'arduino a cette sandbox de problème. Ainsi, la plupart des recherches que vous faites pour trouver des infos seront dans ce bac à sable. La différence est que tout est ouverte à vue, l'info est là, si vous voulez faire votre propre chose et avoir le contrôle du conseil d'administration. L'arduino n'est pas aussi facile que de le AVR papillon pour ceux qui se souviennent de cette plate-forme.
L'AVR papillon et maintenant, l'arduino est étonnant dans le sens de les fidèles il a dessiné. Peut-être Atmel est un peu plus convivial à l'entreprise de surmonter le jeu d'instructions et les outils. Ils ne se limitent à l'AVR BTW, ils ont aussi une ligne du BRAS et probablement plus de choses, je n'ai pas regardé depuis un moment. Vous avez certainement l'habitude de besoin stackoverflow pour obtenir de l'aide si vous y allez avec un arduino. Et vous n'aurez pas besoin de tout assembler si vous ne voulez pas. Et avec sparkfun arduino mini ou lillypad le coût pour jouer est rien.
Je pense qu'ils pourraient faire soo beaucoup plus avec le msp430. Bien sûr, ils ont super faible pouvoir de marché qu'ils veulent frapper. Mais le jeu d'instruction avait ce sentiment de la pdp-11 lorsque j'ai vu pour la première fois. Très propre, je recommande le msp430 d'abord pour ceux qui veulent apprendre l'assemblée, puis de passer à BRAS, par la suite, vous verrez que toutes les opérations d'assemblage langues sont juste la syntaxe autant que d'apprentissage. De la Performance et de la douleur et d'autres choses sont une autre histoire, bien sûr. Je pense qu'ils pourraient facilement augmenter la vitesse de la msp430 et plus pour permettre l'utilisation de l'espace d'adressage. J'ai passé un peu de temps récemment de jongler avec un opencore msp430 qui pourrait s'inscrire dans un fpga et d'obtenir plus de mémoire et de la vitesse et fonctionnalités si vous le souhaitez, pourrait même ajouter usb si vous le souhaitez. Pas dans un super faible puissance package de cours. Je me tâte aussi à écrire ma propre msp430 clone juste pour en savoir un peu hdl, na pas le finir, mais avait du plaisir.