No que diz respeito ao msp430, é uma boa arquitetura, boas ferramentas por aí mspgcc e mspgcc4 e llvm. binutils sem remendar. Você pode obter uma barra de lançamento por menos de US $ 5 a esse preço e comprar algumas (eventualmente você vai fabricar algo ou fazer um curto-circuito e derreter, ter um sobressalente, especialmente por esse preço) ...
Faça o download das ferramentas, todas gratuitas, escreva algumas linhas de código, aprenda a vinculá-lo, veja o tamanho do binário, sinta-se incorporado, linhas de código em tamanho de ROM, etc.
Como os profissionais fazem isso. Praticamente de todas as maneiras que você pode imaginar:
Em algumas empresas, o mandato é alto e não há nada que você possa fazer além de sair. E você pode nunca saber por que essa plataforma foi escolhida.
Às vezes, o contratado / cliente favorito dita a plataforma, às vezes você pode educar / negociar, às vezes não.
Algumas pessoas apenas têm um favorito, o medo do desconhecido, qualquer que seja. A mesma razão pela qual algumas pessoas compram apenas uma marca de carro, porque meu pai comprou e o pai dele comprou antes disso, e esse poderia ser o motivo todo.
Algumas pessoas se concentram nas ferramentas. Aqui, novamente, você tem pessoas leais à marca, limitando-se à sua empresa de compiladores favorita e aos alvos que eles suportam, ou à ferramenta de código aberto favorita e ao que ela suporta. Sistema operacional incorporado favorito e limite aos destinos que suportam.
Em alguns casos, trata-se de ferramentas, mas de uma maneira diferente, com o tempo, você pode ter investido muito dinheiro em contratos de suporte anual com um fornecedor (por exemplo, braço ou xilinx ou motorola, por exemplo) e pode ser que você tenha gostado do suporte deles. e não quer mudar, ou o diabo que você conhece é melhor que o diabo que você não. Ou pode ser que, como os outros 5 projetos ativos da empresa usem esse recurso e já tenhamos um contrato de suporte e continuemos pagando ano após ano, você precise escolher uma dessas soluções de fornecedores.
Às vezes, trata-se de salvar os milipênios. Esta peça é 1,5% mais barata que a peça, faça com que ela funcione, não se preocupe com o NRE, pense nas economias de fabricação em volume.
Às vezes é sobre os negativos. Um fornecedor pode ter ferrado sua empresa de uma maneira ou de outra. Falha no atendimento ao fornecimento anunciado de peças, causando atrasos ou cancelamento de seus produtos. Fraudes de isca e troca (a taxa de US $ 50.000 para o software não incluía a taxa de US $ 1200 para o dongle necessário para desbloquear a licença, que é um item de custo extra. Ah, e isso era por usuário para a licença flutuante). Depois de assinar o NDA para ver o manual de referência dos programadores ou o guia de design de referência, você descobre o quão terrível é a engenharia deles e pode optar por colocar na lista negra todos os seus produtos por toda a vida. História passada com suporte técnico horrível. Qualquer número de razões pode fazer com que você nunca permita que o pessoal de vendas deles entre na porta da frente ou impeça que você nunca volte a olhar para o site deles.
Às vezes, isso tem a ver com desempenho, interfaces, etc. Caso em questão, digamos que você tenha uma interface com fio ou que precise de um pull up, a marca de microcontroladores XYZ por US $ 3 por peça possui um conjunto de pinos de E / S que podem ser usados sem nenhum outro hardware externo necessário, a marca ABC possui uma parte de US $ 3 que exigirá um transistor e um resistor externos para fazê-lo funcionar no mínimo. Seu exemplo do msp430, diz que é sobre consumo de energia, a parte A pode exigir apenas que o usuário use uma bateria AAA e funcione por meses, a parte B pode precisar de duas baterias AAA e funcione por semanas.
O caso mais raro de tudo é realmente fazer a engenharia, pesquisar todos os fornecedores, calcular o consumo de energia, o preço por unidade de cálculo do produto, o tamanho de uma ROM que precisamos e com que frequência executar o chip, cola lógica, e assim por diante. Geralmente alguém (chefe / cliente / engenheiro sênior) tira seus anos de experiência e dispara do quadril (geralmente usando uma ou mais das opções acima) para escolher o caminho (geralmente um bom caminho, economizando muito tempo na programação e em dólares) e o a engenharia é feita uma vez para ajustar a plataforma escolhida.
Minha recomendação pessoal é ser flexível. A maioria das marcas / famílias de microcontroladores, de alguma forma ou moda, pode ser adquirida em uma placa de avaliação por menos de US $ 50. Sparkfun, olimex ou direto do fornecedor (ti para msp430 ou stellaris, etc). Experimente um ou mais de cada um, sinta o que é comum e o que é diferente: ferramentas, carregadores, quão difícil é desmarcar etc. Você obtém duas coisas disso, pelo menos, uma é que, quando você é forçado a seguir um caminho do alto ou do cliente, você pode começar a correr, o segundo é que, quando é a sua vez de escolher a plataforma, você é mais instruído sobre o que é e o que não está lá fora, e pode escolher a plataforma (palavra carregada) certa com base no problema para ser resolvido.
Mesmo se você não puder gastar esse tipo de dinheiro com o hardware, a maioria possui ferramentas que você pode baixar (gratuitamente); em casos como microchip, agora você pode obter o compilador C (que costumava ser de alta tecnologia), mas precisa se inscrever (abra seu endereço de e-mail). O gcc gosta ou odeia no seu futuro, desktop ou incorporado, sujar as mãos e aprender a usá-lo como um compilador cruzado. Experimente o llvm também, ele estará disponível por um tempo e dará ao gcc uma competição séria. De qualquer forma, escreva ou encontre alguns emuladores, mame tem muitos, gdb tem alguns etc. Eu escrevi um chamado thumbulator no github, apenas no modo ARM thumb, semelhante a um córtex-m3, exceto que eu não apóio o thumb2 (ainda posso aprender um pouco e execute os programas nos dois antes de mudar apenas para o hardware). Eu criei um emulador msp430, mas meio que parei com isso. O conjunto de instruções é tão pequeno que a maior parte do trabalho é uma noite ou talvez um projeto de sábado. O mesmo vale para o PIC, uma longa tarde e você tem um simulador de conjunto de instruções com o qual praticar incorporado. Se nada mais puder, basta escrever os programas compilados e vincular para ter uma ideia de como fazer isso e qual o tamanho dos programas, como ajustar os programas para produzir um código mais rígido etc.
Quanto ao C vs assembler, alguns conjuntos de instruções são amigáveis ao C e outros não. Alguns compiladores são médios e outros são muito ruins e apenas alguns são realmente bons (e geralmente custam alguns milhares de dólares uma vez ou por ano). Tal como acontece com o desempenho em qualquer lugar, se você realmente deseja empurrá-lo, pode ser necessária uma mistura de linguagem de alto nível (digamos C) e assembler. Portanto, a habilidade não está gravando o aplicativo inteiro no assembler, mas está determinando qual código está causando o incumprimento de tempo / desempenho e, em seguida, sabendo como resolvê-lo por meio de C, opções do compilador, escolha do compilador certo ou gravador do assembler.
Eu recomendo que você conheça o assembler para todas as plataformas que optar por usar, se nada mais for legível, como no incorporado, recomendo que você desmonte com frequência (enquanto descobre onde estão seus problemas de desempenho). Em muitas plataformas, algum montador é necessário ou desejado para o código de inicialização de qualquer maneira.
Se você deseja economizar 10-20% no preço por unidade e deseja comprar o microcontrolador ou oscilador mais barato / mais lento ou a parte flash de 32Kb em vez da parte flash de 64KB e pode cobrir o custo de desenvolvimento com volume de vendas, e talvez uma longa lista de outras coisas que você pode muito bem escolher escrever em assembléia, clientes rápidos, de baixa potência, baixo custo e satisfeitos.
Dependendo do seu histórico até agora, talvez você não deva se preocupar em escrever em todos os montadores e talvez nos aspectos de engenharia elétrica incorporados aos microcontroladores, ler esquemas, saber qual coletor aberto, estado tri, push pull, pwm, adc, dac e um lista longa de outros termos e como usá-los. bit bang i2c, spi, mdio, dallas one wire, etc. Usando um escopo como depurador de software. Embora os escopos possam destacar coisas para você hoje (um item de custo extra), você deve poder observar o i2c e o spi e alguns outros protocolos sem os destaques.
Também recomendo que, para cada uma das plataformas com as quais você joga, saia da caixa de areia de outra pessoa (o ambiente de programação / ide do Arduino, por exemplo). Escreva o código de inicialização que leva o processador da redefinição para o seu programa main (), faça o máximo possível para entender como carregar / programar o flash até o ponto que possa envolver a gravação do seu próprio carregador, mesmo que os de prateleira estejam há. É uma questão de educação pessoal, quanto mais você souber e puder retirar do bolso de trás e usar mais controle sobre a sua carreira e mais zeros no final do número do seu salário.
Faça o que fizer, NÃO, tente aprender x86 como seu primeiro montador em uma área de trabalho, escolha praticamente qualquer outra coisa e compile e simule, ARM, THUMB, MSP430, PIC, AVR, até 6502, 8051. x86 é uma instrução horrível definido e, como resultado, foi transformado e modelado de várias maneiras: microcodificado, não microcodificado, multicore, etc. Mantenha o x86 em idiomas de alto nível e sistemas operacionais volumosos. Use-o para o seu editor de texto e compiladores e mire em outra coisa.
Desculpe pela resposta longa ... espero que tenha sido útil.