Como lo señaló la carveona aludida al PIC y el PIC32 son muy diferentes. El PIC32 tiene un núcleo MIPS, los otros PICS tienen un núcleo PIC de microchip, que es una cosa minimalista. Para el PIC32, estoy de acuerdo en que C más algo de asm es el camino a seguir y puede usar gcc o las herramientas de microchip, la mayor parte del aprendizaje es hacer llamadas a API o escribir en registros, poco que ver con el procesador central. Para los que no son PIC32, los PICs personalmente no me acercarían a C, ya que son diseños muy poco amigables, tienen recursos muy limitados (ram / rom), por lo que elegiría ASM, que es bastante fácil de aprender.
Incrustado está integrado. La curva de aprendizaje tiene que ver con el dominio de las cadenas de herramientas y la depuración con poco más que un led parpadeante o, si tiene suerte, un osciloscopio. Se requiere algo de ensamblaje, se requiere la lectura de los esquemas, en ocasiones se producirá daño al hardware, así que compre repuestos. La lectura de manuales a menudo mal escritos (el microchip es particularmente malo) para descubrir cómo usar los periféricos es donde se pasa la mayor parte del tiempo con este tipo de trabajo.
Recomiendo comenzar con simuladores, pueden tener una mejor visibilidad del procesador que un chip real donde no se puede ver nada. El arranque en hardware tiene una tasa de falla significativamente mayor. Las fotos que no son pic32 son tan simples que puedes escribir fácilmente tu propio simulador, si no puedes golpear un simulador pic12 o 14 o 16, entonces no puedes trabajar realmente a este nivel como gestión de bits en registros, etc. es lo que necesitas. para la programación de periféricos, etc.
Cuando esté listo, obtenga una tarjeta, con un led, aprenda a parpadear usando un bucle de tiempo y aprenda a usar el periférico del temporizador para medir el tiempo más preciso. Los largos períodos de tiempo, como segundos o decenas de segundos (a menudo el temporizador no puede hacer eso en una medición, por lo que tiene que medir un período más pequeño muchas veces), compare la velocidad de parpadeo con un cronómetro o algo con una segunda mano, cuando lo crea debe ser de 60 segundos, es 60 o 59 o 61 y si es así, ¿por qué? ¿Es la precisión del reloj o si ha programado N-1 en lugar de N en el temporizador? ¿Es 30 en lugar de 60 porque no se dio cuenta? una división por 2 pasando en alguna parte.