Yo hago ambas cosas, así que aquí está mi opinión.
Creo que la habilidad más importante, por mucho, en la incrustada es tu capacidad de depuración. La mentalidad requerida es muy diferente, ya que mucho más puede salir mal, y debes estar muy abierto a considerar todas las formas en que lo que estás tratando de hacer puede salir mal.
Este es el mayor problema para los nuevos desarrolladores integrados. Las personas de PC tienden a tenerlo más duro, ya que están acostumbrados a trabajar solo para ellos. Tendrán a perder mucho tiempo buscando herramientas para hacer cosas por ellos (pista: no hay muchas). Hay muchas cabezas de golpes en las paredes una y otra vez, sin saber qué más hacer. Si siente que se está atascando, dé un paso atrás y averigüe si puede identificar qué podría estar yendo mal. Rastrear sistemáticamente tu lista de problemas potenciales hasta que lo descubras. De este proceso se deduce directamente que debe limitar el alcance de los problemas al no cambiar demasiado de una vez.
Las personas integradas con experiencia tienden a dar por sentado la depuración ... la mayoría de las personas que no pueden hacerlo bien no duran mucho tiempo (o trabajan en grandes compañías que simplemente aceptan que "el firmware es difícil" como respuesta al por qué) una cierta característica lleva años de retraso)
Está trabajando en un código que se ejecuta en un sistema externo para su sistema de desarrollo, con diversos grados de visibilidad en su objetivo de una plataforma a otra. Si está bajo su control, presione para obtener ayudas de desarrollo que ayuden a aumentar esta visibilidad en su sistema objetivo. Utilice los puertos serie de depuración, la salida de depuración de bit banging, la famosa luz parpadeante, etc. Ciertamente, como mínimo, aprenda cómo usar un osciloscopio y use la E / S de pin con el 'alcance' para ver cuándo ciertas funciones entran / salen, disparan los ISR, etc. He visto a la gente luchar literalmente durante más años de lo necesario simplemente porque nunca se molestaron en configurar / aprender a usar un enlace de depuración JTAG adecuado.
Es mucho más importante estar muy al tanto de los recursos que tiene con respecto a una PC. Lea las hojas de datos con cuidado. Considere el 'costo' del recurso de cualquier cosa que esté tratando de hacer. Aprenda trucos de depuración orientados a los recursos, como llenar el espacio de la pila con un valor mágico para rastrear el uso de la pila.
Si bien se requiere cierto grado de habilidad de depuración tanto para la PC como para el software integrado, es mucho más importante con la incrustación.