Eu faço as duas coisas, então aqui está a minha opinião.
Eu acho que a habilidade mais importante de longe incorporada é a sua capacidade de depuração. A mentalidade necessária é muito diferente, pois muito mais pode dar errado, e você deve estar muito aberto a considerar todas as diferentes maneiras pelas quais você está tentando fazer pode dar errado.
Esse é o maior problema para os novos desenvolvedores incorporados. As pessoas de PC tendem a ser mais ásperas, pois estão acostumadas a trabalhar apenas para elas. Eles tendem a perder muito tempo procurando ferramentas para fazer as coisas por eles (dica: não há muitos). Há muitas cabeças batendo nas paredes repetidas vezes, sem saber o que mais fazer. Se você sentir que está ficando paralisado, dê um passo atrás e descubra se consegue identificar o que tudo está dando errado. Sistematicamente, refine sua lista de problemas em potencial até que você descubra. Segue-se diretamente deste processo que você deve limitar o escopo dos problemas, não alterando muito de uma vez.
Pessoas embarcadas experientes tendem a aceitar a depuração como certa ... a maioria das pessoas que não consegue fazer isso bem não dura muito (ou trabalha em grandes empresas que simplesmente aceitam "o firmware é difícil" como resposta para por que um determinado recurso está atrasado)
Você está trabalhando no código que é executado em um sistema externo ao seu sistema de desenvolvimento, com vários graus de visibilidade do seu destino de plataforma para plataforma. Se você estiver sob seu controle, solicite auxílio ao desenvolvimento para ajudar a aumentar essa visibilidade em seu sistema de destino. Use portas seriais de depuração, saída de depuração de batida de bits, a famosa luz piscante etc. etc. Certamente, no mínimo, aprenda como usar um osciloscópio e use E / S de pino com o escopo 'para ver quando determinadas funções entram / saem, ISRs disparam, etc. Eu assisti as pessoas lutando literalmente por anos mais do que o necessário, simplesmente porque nunca se preocuparam em configurar / aprender a usar um link de depurador JTAG adequado.
É muito mais importante estar ciente exatamente de quais recursos você possui em relação a um PC. Leia as folhas de dados com atenção. Considere o 'custo' do recurso de qualquer coisa que você esteja tentando fazer. Aprenda truques de depuração orientados a recursos, como preencher o espaço da pilha com um valor mágico para rastrear o uso da pilha.
Embora seja necessário algum grau de habilidade de depuração para PC e software incorporado, é muito mais importante com o incorporado.