Realmente no.
CMSIS oculta las diferencias centrales (y solo eso) entre las familias Cortex. Por lo tanto, podría ser útil al migrar, por ejemplo, de un dispositivo Cortex M3 a un Cortex A5, porque no tendrá que volver a implementar la función de declaración, que de todos modos es trivial, que permite una interrupción, etc. No es una gran ayuda, en mi humilde opinión.
Al migrar entre dos dispositivos Cortex con el mismo núcleo, pero de diferentes proveedores de silicio, CMSIS no ayudará a ninguno. Todos los periféricos centrales son idénticos, cualquier solución patentada funcionaría de la misma manera. Sin embargo, los periféricos no básicos y no estandarizados pueden ser (en su mayoría son) muy diferentes, tendrá que implementar e integrar un nuevo conjunto completo de controladores. Esto es mucho más trabajo que abordar las diferencias mínimas de núcleo y núcleo periférico en la familia Cortex, y no hay un buen soporte para ayudar aquí. La mayoría de los proveedores de silicio ofrecen una colección de controladores, su API de integración es tan diferente como el propio hardware, y también hay una gran variación en la calidad del software.
El paquete ST es particularmente malo. Basta con mirar en la fuente y compararla con la documentación. Notará que se accede a los registros no existentes, se leen solo los bits escritos, no se realizan las configuraciones obligatorias, se violan las restricciones de tiempo, etc. Es sorprendente que su controlador USB muestre signos de vida. Eventualmente terminarás creando tus propios controladores desde cero, usando los controladores “oficiales” solo como guía. ¡Tampoco confíes en los archivos de encabezado, verifica todas las direcciones periféricas antes de usarlas! Aunque no son de la mejor calidad, tener algo funcionando de inmediato es de gran ayuda al comienzo del desarrollo.
- ¿Qué se entiende por corrección del factor de potencia?
- ¿Qué combinación de resistencias puedo usar para obtener 11.8 ohmios?
- ¿Cuáles son los diferentes tipos de aisladores?
- ¿Cuál es la razón detrás del uso del transformador de estrella delta como transformador generador y no como transformador de estrella?
- ¿Cuál es una manera simple de describir el modelo de Ebers-Moll?
Decidí no usar CMSIS en absoluto y no incluir ningún software del proveedor de silicio. Tendría cuidado en la misma medida al agregar partes de hardware de compañías de software también 🙂