Hago ambas cosas, así que aquí está mi punto de vista.
Creo que la habilidad más importante en incrustación es su capacidad de depuración. La mentalidad requerida es muy diferente, ya que mucho más puede salir mal, y debe estar muy abierto a considerar todas las diferentes formas en que lo que está tratando de hacer puede salir mal.
Este es el mayor problema para los nuevos desarrolladores integrados. La gente de PC tiende a tenerlo más duro, ya que están acostumbrados a trabajar tanto para ellos. Tienden a perder mucho tiempo buscando herramientas para hacer cosas por ellos (pista: no hay muchas). Hay un montón de golpes en las paredes una y otra vez, sin saber qué más hacer. Si siente que se está atascando, retroceda y descubra si puede identificar qué podría estar saliendo mal. Revise sistemáticamente su lista de problemas potenciales hasta que la resuelva. De este proceso se deduce directamente que debe limitar el alcance de los problemas al no cambiar demasiado a la 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 (o trabajan en grandes empresas que simplemente aceptan que "el firmware es difícil" como respuesta a por qué una determinada característica es años tarde)
Está trabajando en un código que se ejecuta en un sistema externo a su sistema de desarrollo, con diferentes grados de visibilidad en su objetivo de plataforma en plataforma. Si está bajo su control, busque ayudas de desarrollo para ayudar a aumentar esta visibilidad en su sistema de destino. Use puertos seriales de depuración, salida de depuración de bit bitging, la famosa luz intermitente, etc. Ciertamente, como mínimo, aprenda cómo usar un osciloscopio y use el pin I / O con el 'alcance para ver cuándo ciertas funciones entran / salen, los ISR se disparan, etc. He visto a la gente luchar durante literalmente años más de lo necesario simplemente porque nunca se molestaron en configurar / aprender a usar un enlace de depurador JTAG adecuado.
Es mucho más importante ser muy consciente de exactamente qué recursos tiene en relación con una PC. Lea las hojas de datos cuidadosamente. Considere el 'costo' de recursos de todo lo 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 depuración para PC y software embebido, es mucho más importante con embebido.