nós migramos do assembler para o C na programação do microprocessador. Tenho dúvidas de que seja uma boa ideia
Não tema, ninguém mais desenvolve novos programas em montador 100%. Atualmente, o C pode ser usado mesmo para as arquiteturas de 8 bits mais minúsculas e ruins. No entanto , conhecer algum montador faz de você um programador C significativamente melhor. Além disso, sempre há alguns pequenos detalhes ou dois em um programa que precisam ser escritos no assembler.
Eu posso dizer que a sintaxe C é muito mais fácil de aprender do que a sintaxe do Assembler.
Sim, a sintaxe é mais fácil, certamente. No entanto, aprender toda a linguagem C com todos os detalhes irritantes é muito mais complexo do que aprender todos os detalhes de um assembler em particular. C é uma linguagem muito maior e mais ampla. Mas, novamente, talvez você não precise aprender todos os detalhes.
C é mais fácil de usar para criar programas mais complexos.
De fato, C fornece mecanismos para o design modular do programa, como encapsulamento e escopos locais / variáveis locais. EC tem uma biblioteca padrão, além de uma enorme quantidade de recursos escritos nos últimos 30 anos. E o mais importante, C é portátil.
Aprender C é de alguma forma mais produtivo do que aprender assembler, porque há mais coisas em desenvolvimento em torno de C que Assembler.
O C possui muitas funcionalidades, bibliotecas e recursos pré-fabricados, portanto haverá menos reinventação da roda. Mas, além disso, sua afirmação é subjetiva. Eu acredito que é uma questão de preferência pessoal.
Por exemplo, eu sou um programador C experiente, ocasionalmente programando C ++. Eu me sinto muito menos produtivo em C ++, porque não conheço essa linguagem tão bem quanto conheço C. Mas só porque me sinto assim, não significa necessariamente que a programação em C seja mais produtiva do que a programação em C ++. Um programador C ++ experiente certamente teria a opinião oposta.
E há muitos aspectos para "produtivo". Um aspecto muito importante é o tempo de manutenção e, principalmente, o tempo necessário para corrigir bugs induzidos pela manutenção. C é muito mais fácil de manter do que o assembler.
O Assembler é uma linguagem de programação de nível inferior ao C, portanto, é uma boa opção para programar diretamente no hardware.
A programação de hardware pode ser feita diretamente em qualquer idioma. As únicas coisas que você não pode fazer em C são acessar ponteiros de pilha e registros de condição, etc., do próprio núcleo da CPU. Portanto, se por programação de hardware você quer falar com sua própria CPU, sim, o assembler permite um pouco mais do que C. Se você quer acessar o hardware externo, o assembler não tem nenhum benefício sobre o C. Mas talvez seja uma desvantagem, pois geralmente é mais difícil escrever código genérico do assembler para um dispositivo externo específico, que código C genérico.
É muito mais flexível, aludindo você a trabalhar com memória, interrupções, micro-registros, etc.
Isso não está correto. C permite que você faça tudo isso também, embora você precise confiar no código C específico do compilador, como a palavra-chave interrupt.
No final, você precisa conhecer os dois idiomas para programar MCUs, com ênfase em C.