Personalmente, tengo experiencia en arquitecturas de 8 bits y 16 bits (como Atmel o Microchip) y ahora me gustaría continuar con la familia ARM Cortex-M de 32 bits. Quería aprender los aspectos internos de la arquitectura Cortex-M y cómo programar / programar.
Según mis búsquedas rápidas y superficiales, parece que hay bibliotecas CMSIS proporcionadas por ARM para eliminar la dependencia de fabricación. Sin embargo, también vi algunas bibliotecas de abstracción de hardware adicionales en el sitio web de algunos fabricantes.
Intento averiguar de dónde debería empezar a trabajar, pero estoy un poco confundido.
En realidad no quiero ser un fabricante dependiente cuando estoy desarrollando software para la familia Cortex-M, ya que las partes internas del chip serían bastante similares para cada fabricante ( , ¿no es así? ). Creo que puedo leer y encontrar las diferencias de una MCU que utiliza el núcleo Cortex-M3 buscando en la hoja de datos proporcionada por el fabricante y puedo escribir código con las bibliotecas CMSIS ( , ¿puedo? )
Por lo tanto, mis preguntas son;
- ¿Es posible desarrollar un firmware para la familia Cortex-M simplemente utilizando las bibliotecas CMSIS (y utilizando la hoja de datos del fabricante para averiguar los componentes internos del chip)? Si quiero cambiar de fabricante (sin cambiar el núcleo de Cortex-M), ¿será un dolor de cabeza adaptar el código para un chip utilizando bibliotecas CMSIS?
- Para cambiar el fabricante y decidir por un nuevo chip, ¿será otro dolor de cabeza? Imagine que todos adoptaron su entorno de trabajo de hardware y software para la familia Microchip y están migrando sus aplicaciones a la familia Atmel (aprendiendo nuevas bibliotecas, sintaxis de código, IDE, programadores, depuradores, etc.). A veces debe cambiar incluso el sistema operativo que está utilizando solo para usar algunas interfaces adecuadas de depurador o programador. ¿Será lo mismo?
- Si es un dolor de cabeza cambiar de fabricante, ¿cuáles son las ventajas y desventajas de seleccionar un fabricante al principio? (En realidad, ¿cómo podría diferir en 2 chips diferentes de 2 fabricantes diferentes mientras que el núcleo aún es Cortex-M3?)
- ¿Tiene alguna sugerencia sobre dónde comenzar? (Lecturas, kits de evaluación, depuradores, programadores, etc. Todo lo que se necesita para criar una familia Cortex-M).
Gracias de antemano.